个人理解
先选中第二项作为插入项,然后跟前面的进行比较,放到合适的位置,然后指针++,选择下一项,并插入前面已经排好序的有序表里面。
代码
#include<stdio.h> void insertsort(int arr[],int length){ int i,j,key; for(i=1,i<length,i++){ key=arr[i]; j=i-1; while(j>=0)&&(arr[j]>key){ arr[j+1]=arr[j]; j--; } arr[j+1]=key; } void testinsertsort(){ printf("\n----insertsort----begin\n"); int arr[22,64,55,78,54,45,13,22,59]; int length=(int)sizeof(arr)/sizeof(*arr); insertsort(arr,length); int i; for(i=0;i<length;i++){ printf("%d",arr[i]); } printf("\n----insertsort----begin\n") } }