直接插入排序
来源:互联网 发布:数据化管理pdf下载 编辑:程序博客网 时间:2024/06/05 03:21
时间复杂度:O(n^2)
空间复杂度:O(1)
稳定性:稳定
原理:首先将第一个元素看成一个已排序的数组,然后依次将后面的数组按插入到已排序数组中并保持前面数组的有序性。
代码:
/*大学课程中各种排序算法的实现语言:C++作者:Kylin.C*/#include<iostream>#include<vector>using namespace std;//直接插入排序void InsertSort(vector<int> &arr){ if (arr.size() <= 1) return; for (int i = 1; i < arr.size(); ++i) { if (arr[i] < arr[i - 1])//如果待排数据小于前一个数据(已排数据中的最大值)则需要前插;否则不需要 { int temp = arr[i], j = i - 1; for (; j >= 0; --j) { arr[j + 1] = arr[j]; if (temp>arr[j])//找到待插入数据的位置并进行插入操作 break; } arr[j+1] = temp; } }}int main(){ vector<int> arr{ 4, 2, 1, 4, 3, 8, 6, 5, 6 }; InsertSort(arr); for (auto a : arr) cout << a << " "; cout << endl; system("pause"); return 0;}
阅读全文
0 0
- 插入排序--直接插入
- 插入排序------直接插入
- 插入排序---直接插入
- 排序:直接插入排序
- 排序---直接插入排序
- 排序 -- 直接插入排序
- 排序---直接插入排序
- 排序--直接插入排序
- 排序-直接插入排序
- 【排序】直接插入排序
- 排序--直接插入排序
- 排序:直接插入排序
- 【排序】直接插入排序
- 排序--直接插入排序
- 排序--直接插入排序
- 排序-直接插入排序
- 插入排序--直接插入排序
- 插入排序-直接插入排序
- 动态代理-JDK 源码剖析(一):简单示例
- 类的六个默认成员函数(二)
- Tomcat集群session如何共享详解
- 天气查询ajax and xml
- hdu 3605 Escape (最大流+状态压缩)
- 直接插入排序
- CSIC2010网络攻击数据分词处理
- kNN算法
- scala2.11知识总结 1
- Zookeeper以Windows服务安装运行
- 面试之链表
- comm对比两个文件是否相同
- 递归在方法中的应用
- 线性判别分析(LDA)算法