排序算法之插入排序
来源:互联网 发布:linux dd 克隆系统 编辑:程序博客网 时间:2024/05/21 15:45
排序分为内部排序和外部排序。
内部排序即在内存中进行排序
外部排序即需借助外部存储进行排序。
简单插入排序:
该排序算法是假定一组无序序列中的第一个元素为有序的
然后依次将后面的元素插入到这个有序序列中合适的位置。
例: 将{8,7,6,5,4,3,2,1}从小到大排序
排序过程为
第一趟
第一次:7,8,6,5,4,3,2,1
第二趟
第一次:6,8,7,5,4,3,2,1 第二次:6,7,8,5,4,3,2,1
第三趟
第一次:5,7,8,6,4,3,2,1 第二次:5,6,8,7,4,3,2,1 第三次:5,6,7,8,4,3,2,1
第四趟
第一次:4,6,7,8,5,3,2,1 第二次:4,5,7,8,6,3,2,1 第三次:4,5,6,8,7,3,2,1第四次:4,5,6,7,8,3,2,1
第五趟
第一次:3,5,6,7,8,4,2,1第二次:3,4,6,7,8,5,2,1 第三次:3,4,5,7,8,6,2,1第四次:3,4,5,6,8,7,2,1,第五次:3,4,5,6,7,8,2,1
第六趟
第一次:2,4,5,6,7,8,3,1第二次:2,3,5,6,7,8,4,1第三次:2,3,4,6,7,8,5,1第四次:2,3,4,5,7,8,6,1第五次2,3,4,5,6,8,7,1第六次:2,3,4,5,6,7,8,1
第七趟
第一次:1,3,4,5,6,7,8,2第二次:1,2,4,5,6,7,8,3第三次:1,,2,3,5,6,7,8,4第四次:1,2,3,4,6,7,8,5第五次:1,2,3,4,5,7,8,6第六次:1,2,3,4,5,6,8,7第七次1,2,3,4,5,6,7,8
代码实现:
for(int i=1;i<n;i++){ for(int j=0;j<i;j++){ if(a[i]<a[j]){ int temp = a[i]; a[i] = a[j]; a[j]=temp; } }}
上述排序过程可见插入排序效率很低
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之 插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- Android 自定义TabHost
- [转] 程序员开发效率开发 工具一栏(Mac)
- Hbase单机版安装
- 冒泡排序
- windows PE文件结构及其加载机制
- 排序算法之插入排序
- Go - 以任意类型的slices作为输入参数
- JavaScript ---- 城市联动
- mysql的学习笔记
- 有如图所示的七巧板,试设计算法,使用至多4种不同颜色对七巧板进行涂色(每块七巧板一种颜色),要求相邻区域的颜色互补相同,打印输出所有可能的涂色方案。
- Android Studio 使用小技巧和快捷键
- Tab实现之Fragment(二)
- EventBus3.0的用法详解
- codeblocks 设置C99标准编译C文件