插入排序
来源:互联网 发布:淘宝如何设置自动回复 编辑:程序博客网 时间:2024/05/16 13:01
插入排序法
插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外,而第二部分就只包含这一个元素。在第一部分排序后,再把这个最后元素插入到此刻已是有序的第一部分里的位置
Java代码实现
public class InsertionSort {
/** * @param args */
public static void main(String[] args) {
int[] data = new int[]{5,1,6,2,7,8,9,3,4};
int j;
for (int i = 1; i < data.length; i++) { //i 表示第N趟
// 要插入的新数据
int temp = data[i];
//只考虑排好序的数据(此处表示数组中左边的数据),为排好序的 数据表示是等待插入的数据
for (j = i; j > 0 && temp < data[j-1]; j--) {
data[j] = data[j-1];
}
data[j] = temp;
}
for (int i = 0; i < data.length; i++) {
System.out.print(data[i] + " ");
}
}
}
解析:
原始数据:5,1,6,2,7,8,9,3,4(有序序列 5 待插入排序序列 1,6,2,7,8,9,3,4)
第1趟 : 1,5,6,2,7,8,9,3,4(有序序列 1,5 待插入排序序列 6,2,7,8,9,3,4)
第2趟 :1,5,6,2,7,8,9,3,4(有序序列 1,5,6 待插入排序序列 2,7,8,9,3,4)
第3趟 :1,2,5,6,7,8,9,3,4 .
第4趟 :1,2,5,6,7,8,9,3,4.
第5趟 :1,2,5,6,7,8,9,3,4.
第6趟 :1,2,5,6,7,8,93,4.
第7趟 :1,2,3,5,6,7,8,9,4.
第8趟 :1,3,4,5,6,,7,8,9.
时间复杂度: T(N^2) 2+3+4+...+n
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 设计模式之python版(三)--装饰模式
- 使用ORACLE DBCA创建数据库
- android用于打开各种文件的intent
- go语言Advanced Exercise: Complex cube roots
- Android开发 - Activity初步
- 插入排序
- xcode 4.2 设置 横屏,竖屏
- 用线性表进行回文串的判断
- ajax json 调用WCF,服务端FaultException导致 http 400 bad request错误的解决方式
- 分苹果
- 服务器框架MINA使用经验总结
- android常用命令
- 《编程匠艺》
- 数据库导出CSV格式,并压缩成ZIP的形式导出