实习之路--点滴积累三_插入
插入排序
原理:
(1)“当前元素”将数组分为两部分,左半部分为已经排好序的,右半部分为未排好序的
(2)然后将“当前的元素”插入到左半部分已经排好序的元素中
(3)对数组中的每个元素都执行上述操作,即可得到排序后的数组
需要注意的是:
(1)是从数组中的第二个数开始排序,一直到最末尾的元素为止
代码如下:
1 void Insert_Sort(long *p, long n) 2 { 3 4 for (long i = 1; i < n; i++) 5 { 6 long temp = p[i], j = i; 7 while (j > 0 && temp < p[j - 1]) 8 { 9 p[j] = p[j - 1]; 10 j--; 11 } 12 p[j] = temp; 13 } 14 }
主函数测试代码:
1 int main() 2 { 3 long s[] = { 3, 5, 8, 1, 2, 4, 6, 9, 7, 10 }; 4 Insert_Sort(s, 10); 5 for (long i = 0; i < 10; i++) cout << s[i] << ends << ends; 6 return 0; 7 }
实验截图: