插入排序原理是在数组中将较大的元素向右移动一个位置,为要插入的元素腾出空间,然后较小的元素插入到这个空位置上。
插入排序的比较交换要根据输入的数据而定:最好情况就是,序列已经是升序排列了,在这种情况下,需要进行的比较交换操作需(n-1)次即可。最坏情况就是,序列是降序排列,那么此时需要进行的比较共有n(n-1)/2次。所以,如果需要排序的数据量比较小,有一定的顺序用插入排序还是一个不错的选择。
public class InsertSort2 {
public static void main(String[] args) {
int[] data = { 12, 3, 19, 0, 10, 4 };
sort(data);
for (int i = 0; i < data.length; i++) {
System.out.print(data[i] + " ");
}
}
/**
* 就拿数组12, 3, 19, 0, 10, 4来说,第一次拿前面两个数字进行排序,接着拿前面三个排序,依次类推
* 因为我是按照从大到小进行排序,当i等于1时,data[1]<data[0],没有进行交换,当i等于2时,
* data[2]>data[1],满足条件,进行交换,交换后数组为12, 19, 3, 0, 10, 4
* 而此时data[1]>data[0],满足条件进行交换,此时交换后数组变为19, 12, 3, 0, 10, 4
* 接着i++依次类推
*/
public static void sort(int[] data) {
for (int i = 1; i < data.length; i++) {
for (int j = i; j > 0; j--) {
if (data[j] > data[j - 1]) {
int temp = data[j];
data[j] = data[j - 1];
data[j - 1] = temp;
}
}
}
}
}
分享到:
相关推荐
java实现的插入排序 都是静态的例子 很简单
选择排序和冒泡排序想必大家都很熟悉,但插入排序一般新手却很难理解,插入排序的Java源代码
JAVA实现插入排序,简单演示
自己写的java 插入排序算法,分享给大家,共同进步
用java实现插入排序InsertSort 用java实现插入排序InsertSort用 java实现插入排序InsertSort
使用Java实现简单的插入排序算法,提供参考思路,欢迎大家斧正。
java编写的插入排序算法
直接插入排序 java实现~你值得拥有~
Java语言实现的直接插入排序算法,代码里头有详细注释,注释皆为简单英文,因为这个算法比较简单,欢迎新手下载学习使用,欢迎后期的学习交流!
给初学者学习算法用,用java实现的排序算法,包括二路归并和插入排序。
常用三种排序:快速排序、冒泡排序、插入排序的java实现示例
一段比较简便、易懂,且能运行的JAVA代码。运用的是插入排序法对10个数字进行排序。
针对200000长度的数组,采用插入排序和合并排序,对比两种算法的时间复杂度
java 代码实例 冒泡排序 直接插入排序 数组中插入数据
做了个Java Swing 图形界面,选择3中排序方法进行排序。工程用NetBeans 打开,运行Main.java文件或直接点击运行主程序,...BinSort.java(折半插入排序) QKSort.java(快速排序算法) SelectSort.java(简单选择排序)
Java实现插入排序.rar
该资源提供了Java中实现插入排序的全面指南。文档中涵盖了插入排序的基本概念,包括如何对数组进行排序以及如何在Java中实现插入排序。此外,文档还包括一个逐步指南,介绍了如何在Java中实现插入排序,包括详细的...
效率非常高的java插入排序,适合学习开发适合使用
编写选择排序,插入排序,自顶向上合并排序,合并排序,快速排序,理解各排序算法的实现原理,加深对排序算法的理解。