我个人理解的插入排序算法:
从前往后遍历一个数组,第二个元素开始,每个元素都在当前位置从后往前依次比较,如果前面的元素比这个元素大,则前面的元素后移一位。这样,第二个元素起,每个元素处最多可能要移动n-1次,n是当前元素的序号(起始序号是1),当前元素处比较一轮后,这个位置之前已经是升序了。
InsertSort.java
//package com.liany.demo.sort;
import java.util.Arrays;
public class InsertSort {
public static void sort(int[] array){
int first = 0;
int last = array.length-1;
for(int i = first+1; i <= last; i++){
int temp = array[i];
int j = i-1;
while(j>=first && temp<array[j]){
array[j+1]=array[j];
j--;
}
array[j+1] = temp;
//打印这一轮的排序结果
System.out.println(Arrays.toString(array));
}
}
/**
* @param args
*/
public static void main(String[] args) {
int[] array = {10,3,1,4,9,8,7,5,6,};
sort(array);
}
}
程序打印结果:
[3, 10, 1, 4, 9, 8, 7, 5, 6]
[1, 3, 10, 4, 9, 8, 7, 5, 6]
[1, 3, 4, 10, 9, 8, 7, 5, 6]
[1, 3, 4, 9, 10, 8, 7, 5, 6]
[1, 3, 4, 8, 9, 10, 7, 5, 6]
[1, 3, 4, 7, 8, 9, 10, 5, 6]
[1, 3, 4, 5, 7, 8, 9, 10, 6]
[1, 3, 4, 5, 6, 7, 8, 9, 10]
参考了以下博客hualang:http://www.iteye.com/topic/1116236
分享到:
相关推荐
JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,包括算法的详细介绍,以及对几种算法的详细测试
在这个教程中,我们将深入研究插入排序的原理,并提供一个Java示例来演示如何实现它。不管您是初学者还是有经验的Java开发者,通过学习这个算法,您将了解一种排序方法,有助于提高您的算法理解和编程技能。 插入...
java可运行排序算法:①插入排序、②冒泡排序、③选择排序、④学生学号按照成绩高低排序的一个简单实例。在java工程项目的源文件src中建立Array包,可运行这四个.java文件,便于对java中的排序算法及数组结构进一步...
选择排序和冒泡排序想必大家都很熟悉,但插入排序一般新手却很难理解,插入排序的Java源代码
idea项目:一个主类选择调用6个排序类,记录了学习排序算法的过程,可以自己更改优化,每一种排序是一个类,有需要可以copy走,可重用性强
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
描述:插入排序 * 特点:插入排序算法任然需要O(N*N),但一般情况下它要比冒泡算法快一倍,比选择排序也快, * 它常用在较复杂的排序算法后阶段 * 使用:数据量较小、基本有序的情况一般选择 插入排序 描述:...
常用三种排序:快速排序、冒泡排序、插入排序的java实现示例
java实现的插入排序 都是静态的例子 很简单
编写选择排序,插入排序,自顶向上合并排序,合并排序,快速排序,理解各排序算法的实现原理,加深对排序算法的理解。
Java排序算法:插入,冒泡,选择,Shell,快速排序,归并排序,堆排序,桶式排序,基数排序
java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡
用户能够从终端选择三种排序算法中的一种,包括插入排序,堆排序,选择排序,同时被排序的数也可以通过键盘输入,不限制输入的数字的个数,运用了Java的面向对象的思想
JAVA实现插入排序,简单演示
java 代码实例 冒泡排序 直接插入排序 数组中插入数据
做了个Java Swing 图形界面,选择3中排序方法进行排序。工程用NetBeans 打开,运行Main.java文件或直接点击运行主程序,...BinSort.java(折半插入排序) QKSort.java(快速排序算法) SelectSort.java(简单选择排序)
直接插入排序 java实现~你值得拥有~
用java实现了以下算法: 1、冒泡排序、冒泡排序的两种改进。 2、插入排序。 3、选择排序。 4、希尔排序。 5、归并排序。 6、快速排序。
用java语言实现冒泡排序、插入排序、堆排序、快速排序、归并排序、希尔排序、桶排序,并且对各种排序算法进行性能的比较。
自己写的java 插入排序算法,分享给大家,共同进步