【算法】——插入排序(一)
来源:互联网 发布:电信宽带网络线路故障 编辑:程序博客网 时间:2024/05/01 18:26
一、定义
就是将一个数据插入到一个有序的数据序列,从而得到一个新的、个数加一的有序数据序列。每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。
二、分类
插入排序一般分为简单直接插入排序,折半插入排序,希尔排序。
1、直接插入:将未排序的数据,直接按照键值的大小,插入到已经排好序的数据序列中。
2、希尔排序:把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。
3、折半插入排序:是插入排序算法的一种改进,由于排序算法过程中就是不断的依次将元素插入前面已排好序的序列中。减少了关键字之间比较的次数。
三、基本操作
实例:对a{7,6,3,2,4}分别用直接插入,希尔排序,折半插入排序进行排序。
1、直接插入算法
关键代码:
static void InsertSort(int[] a) { for (int i = 1; i < a.Length; i++) { if (a[i - 1] > a[i]) { int temp = a[i]; // 定义临时变量,用来储存a[i] int j = i; while (j>0 && a[j - 1] > temp) { a[j] = a[j - 1]; //互换位置 a[j-1] = temp; j--; } } } }
代码解释:
未完待续~下篇博客将讲述折半插入排序算法
0 0
- 【算法】——插入排序(一)
- 排序算法(一)——直接插入排序
- 算法——排序(一)直接插入排序
- 排序算法(一)—插入排序(Insertion sort)
- Java排序算法总结之(一)——插入排序(直接插入排序、折半插入排序、希尔排序)
- 算法基础(一)——插入排序
- 算法学习(一)——插入排序
- 初等算法(一)——插入排序法
- 第十四周——项目一验证算法(2)插入排序之直接插入排序
- java算法(一)——排序算法(下)之 插入排序
- 排序算法——插入排序(直接插入排序、折半插入排序、希尔排序)
- 排序算法(一):直接插入排序
- 排序算法(一):插入排序
- 排序算法(一)插入排序
- 排序算法(一) -- 插入排序
- 排序算法(一):直接插入排序
- 算法学习(排序一)插入排序
- 排序算法 -- (一)直接插入排序
- OC中的类及实现方法
- 软件测试知识点整理
- 黑马程序员——JAVA之面向对象(二)
- 软件测试知识点整理
- ZOJ3646 The Dragon of Loowater
- 【算法】——插入排序(一)
- 一种智能指针的实现方式
- 软件测试知识点整理
- Sql Server 里的向上取整、向下取整、四舍五入取整的实例!
- llvm之clang前端的一些例子:
- 测试的方式
- JavaScript面向对象编程指南(第2版) 笔记
- Convolutional Neural Networks (LeNet)
- App开放接口api安全性—Token签名sign的设计与实现