C 直接插入排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010095372/article/details/84258154

就相当于把整个数列吊起来,然后一个一个上,每次进入的时候,都保证插入之后是有序的

void insertSort(int a[], int n)
{
    int i, j, temp;
    //从第二个开始走,走到最后
    for (i = 1; i <= n; i++) {  
    	//要是后一个比前一个小就触发调整机制   
        if (a[i] < a[i-1]) {
        	//将被插入的这个元素临时记录,顺便给前一个腾出位置
            temp = a[i];
            //一路跟前面已有的元素比过去,要是比它小的那就腾出位置
            //腾位置就是后面的元素等于前面元素的值
            for (j = i-1; temp < a[j]; j--) {
                a[j+1] = a[j];
            }
            //藤完为止之后,就在j+1的位置插入temp
            a[j+1] = temp;
        }
    }
}
5260391748
2560391748
2560391748
0256391748
0235691748
0235691748
0123569748
0123567948
0123456798
0123456789
0123456789

猜你喜欢

转载自blog.csdn.net/u010095372/article/details/84258154
今日推荐