直接插入排序_C语言
当我们在记忆直接插入排序的时候,首先在脑海里有一个动态的图像 :arr[i]不断和arr[i-1]进行比较,只要每一次待比较的值比它前面那一位值小的话,就可以进行内层循环了。
所以需要留意的地方就是每一次的直接插入循环或者希尔循环,都是用arr[i]和它之前的那一位进行比较。
void insertsort(int arr[],int length){int i,j;for(i=1;i<length;i++){int temp=arr[i];if(arr[i]<arr[i-1]){for(j=i-1;j>=0 && arr[j]>temp;j--){arr[j+1]=arr[j];}arr[j+1]=temp;}}}int main(){int arr[9]={3,5,23,66,88,2,33,44,55};insertsort(arr,9);int i;for(i=0;i<9;i++)printf(" %d ",arr[i]);}
