各趟排序结果 6(08 0 23 1团目同同 0 234 5 temp i=2 21|25 49 08 5 temp
6 各 趟 排 序 结 果 21 25 49 25* 16 08 0 1 2 3 4 5 0 1 2 3 4 5 temp 21 25 49 25* 16 08 i = 1 25 0 1 2 3 4 5 temp 21 25 49 25* 16 08 49 i = 2
i=3 212549 62825 0 12345 252549 目同 01234 5 temp i=5 1621 2525*49 5 temp
7 21 25 49 25* 16 08 0 1 2 3 4 5 0 1 2 3 4 5 temp 21 25 49 25* 16 i = 4 08 0 1 2 3 4 5 temp 21 25 49 16 25* 08 i = 5 i = 3 25* 16 08
完成 08]162112525149 0 23 i=4时的排序过程 j=3 21 2525/46 0 1 23 4 5 temp j=221 2525* 49 08 6 2 4 5 temp
8 16 49 16 16 21 25 49 16 25* 08 0 1 2 3 4 5 0 1 2 3 4 5 temp 21 25 49 25* 08 i = 4 时的排序过程 0 1 2 3 4 5 temp 21 25 25* 49 完成 16 08 16 i = 4 j = 3 i = 4 j = 2
j=121125 252 49 08 16 0 2 j=021 2525 49 08 网 3 temp i=4 j=-1 j园园 2549 08 6 0 2 3 5 temp
9 25 25* 16 16 21 25 49 25* 08 0 1 2 3 4 5 0 1 2 3 4 5 temp 21 49 25* 08 0 1 2 3 4 5 temp 21 25 25* 49 16 08 16 16 25 21 i = 4 j = 1 i = 4 j = 0 i = 4 j = -1 16
直接插入排序的算法 typedef int SortData; void InsertSort( SortData VI, intn)i /按非递减顺序对表进行排序 SortData temp; int i,j; for(1=1;i<n;i++){ temp=V1 for(j=i;j>0;j--)/从后向前顺序比较 if( temp<Vl-1]=Vi-1I else breaks Vul-=temp
10 直接插入排序的算法 typedef int SortData; void InsertSort ( SortData V[ ], int n ) { //按非递减顺序对表进行排序 SortData temp; int i, j; for ( i = 1; i < n; i++ ) { temp = V[i]; for ( j = i; j > 0; j-- ) //从后向前顺序比较 if ( temp < V[j-1] ) V[j] = V[j-1]; else break; V[j] = temp; } }