直接插入排序
2021-02-17 18:17
标签:有序 image temp 位置 sort span alt 简单的 图片 概念 直接插入排序是一种最简单的排序方法,排序过程为:先将第一个元素看作是只有一个元素的有序子表,然后从第二个元素开始,将待排序元素依次插入到前面有序的子表中,直到全部排序完毕。在整个过程中,前面的元素是已经排序号的列表,后面的元素为待排序处理。 如下排序是将列表{ 7,3,5,4,6 }升序的排序过程。 代码实现 性能 最好:有序,O(n) 最坏:逆序,比较(n+2)(n-1)/2 移动(n+4)(n-1)/2 平均:O(n^2) 稳定性:稳定 直接插入排序 标签:有序 image temp 位置 sort span alt 简单的 图片 原文地址:https://www.cnblogs.com/jpzhu/p/12696918.html 1 void InsertSort(vectorint> &nums)
2 {
3 //nums.insert(nums.begin(), 0);//插入一个哨兵
4 int i, j;
5 int len = nums.size();
6 for (i = 1; i )
7 {
8 int temp = nums[i];
9 for (j = i - 1; j >= 0; j--)
10 {
11 if (temp nums[j])
12 nums[j + 1] = nums[j];////在有序列表中比soldier值大的元素后移
13 else
14 break;//soldier大于有序表中的最后一位则不需要移动
15 }
16 nums[j + 1] = temp;//在正确位置上插入
17 }
18 }
上一篇:用MVC5+EF6+WebApi 做一个考试功能(五) 前端主题
下一篇:堆排序