- 当数组只有一个元素时此数组即为有序数组,将一个有NUM个元素的数组中的第一个元素设置为有序数组,右边NUM-1个为待插数据然后NUM-1轮,每轮把一个数据插入到有序数组中
66 43 89 98 12 18 15 23 33 50 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 0 43 66 89 98 12 18 15 23 33 50 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 1 43 66 89 98 12 18 15 23 33 50 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 2 43 66 89 98 12 18 15 23 33 50 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 3 12 43 66 89 98 18 15 23 33 50 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 4 12 18 43 66 89 98 15 23 33 50 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 5 12 15 18 43 66 89 98 23 33 50 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 6 12 15 18 23 43 66 89 98 33 50 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 7 12 15 18 23 33 43 66 89 98 50 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 8 12 15 18 23 33 43 50 66 89 98 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 9
//插入排序 void insert_sort(int* a, int len){ int temp;//用来保存待插数据 int j; for (int i = 1; i < len; i++){//len-1轮 temp = a[i];//临时保存待插数据 for (j = i - 1; j >= 0; j--){//待插数据前一个开始往前循环(越界循环结束) if (a[j]>temp){//比待插数据大则往后覆盖 a[j + 1] = a[j]; } else{ break; } } //用待插数据覆盖回来(第二步结束后下标的下一个位置) a[j+1] = temp; } }
排序算法——插入排序
最新推荐文章于 2024-06-21 17:14:10 发布