插入排序的思路为: 每一步都将一个待排序的元素插入到排好序的数组中的相应位置,知道所有元素都插入完为止。如下图所示:
代码如下:
void sort_insert(int arr[], int len) { int i, j; int temp = 0; for(i = 1; i < len; i++) { temp = arr[i]; //取出一个元素 //取出的元素和其前面的元素相比较 for(j = i; j > 0 && temp < arr[j - 1]; j--) { //如果前面的元素较大,则后移一位 if(temp < arr[j - 1]) { arr[j] = arr[j - 1]; } } //取出的元素填充到前面的元素空位 arr[j] = temp; } } int arr[]={2,4,1,0,1}; int len= (sizeof(arr) / sizeof(int)); sort_insert(arr,len);