插入排序
来源:互联网 发布:h3c网络图标 编辑:程序博客网 时间:2024/06/10 06:46
插入排序
插入排序跟冒泡排序有些相似,所以有些人在使用的时候经常会混淆。
就我个人而言,区分插入排序和冒泡排序最快的方法就是:冒泡排序直到算法结束后,才知道排序完成。而插入排序则不同,外循环每增加1,就能够知道前n个数是排序好的。所以同样的无序数组,使用插入排序比较数的次数会比冒泡排序少许多。
插入排序从i=1开始,直到i<n结束(数组array[n],array[0]是第一项,array[1]是第二项),当存在array[i-1]>array[i]时,交换两者的顺序。不过由于交换的原因,可能会造成左侧已经排序好的数组再次出现无序情况,因此要继续比较,直到前i项的数组都已排序好。
public class Test{ private static void InsertionSort(int[] array) { for (int i = 1; i < array.Length; i++) { if (array[i - 1] > array[i]) { int temp = array[i]; array[i] = array[i - 1]; int j = i - 1; while (j > 0 && array[j - 1] > temp) { array[j] = array[j - 1]; j--; } array[j] = temp; } } }public static void Main(){ int[] a = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; Console.Write("before: "); for (int i = 0; i < a.Length; i++) Console.Write(a[i] + " "); Console.WriteLine(""); InsertionSort(a); Console.Write("after: "); for (int i = 0; i < a.Length; i++) Console.Write(a[i] + " "); }}
阅读全文
0 0
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- mac 下包管理工具 brew
- H5视频播放库video.js介绍
- 深入理解linux内核自学笔记之内存寻址
- python中文件操作基本流程
- 205. Isomorphic Strings
- 插入排序
- 获取系统文件路径
- android中使用properties文件配置
- 拍照外观齐发力 OPPO打破行业同质化枷锁
- Bootstrap完成分页效果的实现(标签页)
- maven创建复合工程项目
- 反射工具类
- 新手走向成功的路上
- 规则引擎的应用及发展