各趟排序结果 6(08 0 2345 1团目同同 608 012345 emp i=2 21|25 49 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 2345 2525|49 目同 012345 emp 49 i=5 162112525 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
9 完成 08 16212525 0 2345 i=4时的排序过程 j=3 21 2525496 6 012345 temp j=221 2525* 49 08 6 0 1 2 3 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
2125 252 49 08 网 0 j=021 2525 49 08 网 2345 temp i=4 1园园 2549 08 6 0 2345 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 VII int n)i /按非递减顺序对表进行排序 SortData temp; int 1, J for(1=1;i<n;i++){ temp=V1 for(j=i;j>0;j--)/从后向前顺序比较 if( temp<Vl-1]=Vi-1I else breaks VuI-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; } }