C++排序算法之插入排序 本文主要介绍了C++排序算法之插入排序的基本思想、算法实现和时间复杂度分析。插入排序是一种简单的排序算法,通过将未排序的数据元素按大小顺序插入到已排好序数据序列中实现排序。 基本思想 插入排序的基本思想是将未排序的数据元素按大小顺序插入到已排好序数据序列中,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。例如,对2, 4, 3, 1, 6, 5进行插入排序。进行排序前,默认2是有序的,为有序区,而4, 3, 1, 6, 5是无序的,为无序区。将这五个无序的数按从小到大的顺序插入到有序区。 算法实现 插入排序的算法实现可以通过以下C++代码实现: ```c #include<iostream> using namespace std; void insertion_sort(int a[], int len){ int i, j, temp; for (i = 1; i < len; i++) { temp = a[i]; for(j = i; j > 0 && temp < a[j-1]; j--) { a[j] = a[j-1]; } a[j] = temp; } } int main(){ int a[] = {2, 4, 3, 1, 6, 5}; insertion_sort(a, 6); for (int i = 0; i < 6; i++) { cout << a[i] << " "; } return 0; } ``` 时间复杂度分析 插入排序的时间复杂度分析可以分为最好情况和最坏情况讨论。 (1). 最好的情况:最好的情况就是待排序的数据已经排好序了,这时只需要进行(n-1)次比较操作。 (2). 最坏的情况:最坏的情况就是待排序的数据序列是逆序的。此时需要进行的比较次数为n(n-1)/2次,赋值操作是比较操作的次数n(n-1)/2+(n-1)次。平均来说插入排序算法的时间复杂度为O(n^2)。 插入排序是一种简单且易于实现的排序算法,但是它不适合对于数据量比较大的排序应用。































- 粉丝: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于价值创造的电网企业全景流程地图和指标网络构建及应用.docx
- 物业验收交接书.doc
- 电梯安装及调试工法.doc
- 洗涤塔与排气筒整改专案.pptx
- 同步无线Mesh网络带宽申请与分配策略的改进.docx
- 街道led路灯工程质量控制流程图.doc
- 工程计量与计价基础知识.ppt
- 公司年度招聘计划书-.doc
- 互联网企业预算管理问题及对策浅析.docx
- 改建铁路某段电气化改造工程报告书(简本).doc
- [四川]框架核心筒结构办公楼塔吊基础施工方案.doc
- 《网络传播概论》2010雷跃捷版第5章.ppt
- BLACKBOARD网络教学平台在民法课程教学中的应用研究.docx
- 摩擦压力机作业安全技术交底.doc
- 小型建设工程施工抽签定标招标文件示范文本.doc
- 宜万铁路无碴轨道施工质量细则.doc


