0 | 1 | 2 | 3 | 4 |
5 | 2 | 8 | 12 | 3 |
从下标1开始遍历,默认第一个元素是已排序序列。
例如对元素3进行插入排序:
下标0-3分别是2-5-8-12;
此时k=arr[4]=3; j=i-1=3; 从后往前遍历找到k应该插入的位置 当while循环条件 j>=0&&arr[j]>k 一直成立时,arr[j+1]=arr[j]; 元素后移一位
不满足while循环条件时,arr[j+1]=k; 这是元素3最终插入的地方
void InsertSort(int arr[],int n) { int i,j,k; for(i=1;i<n;i++) { k=arr[i]; j=i-1; while(j>=0&&arr[j]>k) { arr[j+1]=arr[j]; j--; } arr[j]=k; } }
标签:arr,12,int,插入排序,元素,&&,直接 From: https://www.cnblogs.com/simpleset/p/17871520.html