标签:sort http mic str 就是 class 循环 开始 for循环
将数组分为有序区和无序区,开始时第一个元素就是有序区,与第二个元素比较,第一二元素排好序后,再将第三个元素与前2个元素比较插入到合适的位置。后面依次操作。
1 void insertSort(int num[],int l) { 2 3 int i,j,t; 4 for(i=1;i<l;i++) //i从1开始 5 for(j=0;j<=i;j++){ //j每次都要从0开始,一直到等于i 6 if(num[j]>num[i]){ //i与前面的有序区进行比较再交换 7 t = num[j]; 8 num[j] = num[i]; 9 num[i] = t; 10 } 11 } 12 13 }
1 void shellSort(int num[],int l){ 2 3 int i,j; 4 int t; //临时变量 5 int n; //i每次开始的下标 6 int k=(l/3)+1; //每次的增量 7 while(k>0){ //k>0就一直排序 8 for(n=0;n<k;n++) //在k变换的情况下,n每次重置为0 9 for(i=n+k;i<l;i+=k) //这两个for循环就是直接插入排序,只不过每次增量为k 10 for(j=n;j<=i;j+=k){ 11 if(num[j]>num[i]){ 12 t = num[i]; 13 num[i] = num[j]; 14 num[j] = t; 15 } 16 } 17 k--; //每次减小增量 18 } 19 }
标签:sort http mic str 就是 class 循环 开始 for循环
原文地址:https://www.cnblogs.com/lsy-lsy/p/11748695.html