算法学习笔记--插入排序
来源:互联网 发布:unity3d 阴影锯齿 编辑:程序博客网 时间:2024/05/18 13:26
插入排序:将每一个元素插入到其他已经有序的数组的适当位置。为了给插入的元素腾出空间,需要将其余所有元素在插入之前都向右移动一位。
插入排序也很简单,java代码如下:
/** *插入排序 */public class Insertion { public static void sort(int[] a){ int N = a.length; for (int i = 1; i < N; i++) { //将a[i]插入到a[i-1],a[i-2],a[i-3]...之中 for (int j = i; j > 0 && (a[j] < a[j-1]); j--) { int temp = a[j]; a[j] = a[j-1]; a[j-1] = temp; } } }}
插入排序轨迹图:
插入排序的特点:
1、对于随机排列的长度为N且主键不重复的数组,平均情况下插入排序需要~(N^2)/4次比较以及~(N^2)/4次交换。最坏的情况下需要(N^2)/2次比较和(N^2)/2次交换,最好的情况下需要N-1次比较和0次交换。
2、插入排序对于部分有序的数组十分高效,也适合小规模数组。
以下几种场景适合插入排序:
1、数组中每个元素距离它的最终位置都不远。
2、一个有序的大数组接一个小数组
3、数组中只有几个元素的位置不正确。
0 0
- 算法学习笔记----插入排序
- 算法学习笔记--插入排序
- [学习笔记]排序算法之插入排序
- Java学习笔记排序算法----------插入排序
- 算法学习笔记之插入排序算法
- 算法学习笔记之插入排序
- 插入排序-算法导论学习笔记
- 插入排序-《算法导论》学习笔记一
- 算法学习笔记之插入排序
- 插入排序算法笔记
- 插入排序算法笔记
- 插入排序算法学习——算法导论学习笔记
- Linux C学习笔记-排序算法1-插入排序
- 八大排序算法学习笔记:插入排序(一)
- [算法学习笔记]排序——插入排序
- 算法学习-插入排序
- 插入排序学习笔记
- 插入排序---学习笔记
- 道听途说
- LeetCode11: Container With Most Water
- Springmvc fileupload上传
- C中字符串的几种定义方法及说明
- matlab截取需要的图片
- 算法学习笔记--插入排序
- [java]反射机制给属性使用set方法构造对象
- Qt 之 自定义窗口标题栏
- numpy.random.rand使用详解
- Android经典蓝牙开发简介
- 隐藏手机号或者邮箱中间四位
- 自用笔记片段 ruby net/http
- QT 缺少xxx.obj
- LeetCode12:Integer to Roman