插入排序(Insertsort)之Java实现
2013-12-12 10:29
375 查看
目录(?)[+]
由于需要频繁的操作以及打印数组,先写一个小的数组工具类。代码如下:
[java]
view plaincopy
public class ArrayUtils {
public static void printArray(int[] array) {
System.out.print("{");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]);
if (i < array.length - 1) {
System.out.print(", ");
}
}
System.out.println("}");
}
}
从数组的第二个元素开始,取得当前待处理的元素,插入到当前元素之前的子数组里面,直到数组的末尾。插入排序的Java实现以及测试代码如下:
[java]
view plaincopy
public class InsertSortTest {
public static void insertSort(int[] array) {
if (array == null || array.length < 2) {
return;
}
for (int i = 1; i < array.length; i++) {
int currentValue = array[i];
int position = i;
for (int j = i - 1; j >= 0; j--) {
if (array[j] > currentValue) {
array[j + 1] = array[j];
position -= 1;
} else {
break;
}
}
array[position] = currentValue;
}
}
public static void main(String[] args) {
int[] array = { 3, -1, 0, -8, 2, 1 };
ArrayUtils.printArray(array);
insertSort(array);
ArrayUtils.printArray(array);
}
}
插入排序算法介绍
排序算法是最简单的算法,也是最基本的算法。顾名思义,插入排序就是把当前待排序的元素插入到一个已经排好序的列表里面。 一个非常形象的例子就是右手抓取一张扑克牌,并把它插入左手拿着的排好序的扑克里面。插入排序的最坏运行时间是O(n2), 所以并不是最优的排序算法。特点是简单,不需要额外的存储空间,在元素少的时候工作得好。插入排序算法Java实现
Java里面有很多数据类型,我们选取的是最简单的整数,但这并不失一般性。即使是自己定制化的对象,实现了java.lang.Comparable, 把对应的 大于号(>)以及小于号(<)换成compareTo即可。由于需要频繁的操作以及打印数组,先写一个小的数组工具类。代码如下:
[java]
view plaincopy
public class ArrayUtils {
public static void printArray(int[] array) {
System.out.print("{");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]);
if (i < array.length - 1) {
System.out.print(", ");
}
}
System.out.println("}");
}
}
从数组的第二个元素开始,取得当前待处理的元素,插入到当前元素之前的子数组里面,直到数组的末尾。插入排序的Java实现以及测试代码如下:
[java]
view plaincopy
public class InsertSortTest {
public static void insertSort(int[] array) {
if (array == null || array.length < 2) {
return;
}
for (int i = 1; i < array.length; i++) {
int currentValue = array[i];
int position = i;
for (int j = i - 1; j >= 0; j--) {
if (array[j] > currentValue) {
array[j + 1] = array[j];
position -= 1;
} else {
break;
}
}
array[position] = currentValue;
}
}
public static void main(String[] args) {
int[] array = { 3, -1, 0, -8, 2, 1 };
ArrayUtils.printArray(array);
insertSort(array);
ArrayUtils.printArray(array);
}
}
相关文章推荐
- 简单插入排序(Insertion Sort)——插入类排序法(Java实现)
- recursion-insert-sort( 插入排序的递归实现 )
- java插入排序 Insert sort实例
- 插入排序 直接插入排序的PHP实现 Straight Insertion Sort
- Java实现简单排序——冒泡、选择、插入、奇偶排序
- java实现选择排序算法,sort
- [排序算法]--直接插入排序的三种实现(Java)
- 直接插入排序及其JAVA实现
- 数据算法之二叉树插入(BinaryTreeL Insert)的Java实现
- 数据结构之排序算法Java实现(6)—— 插入类排序之折半插入排序算法
- 慕课JAVA入门三,6-5应用Collections.sort()实现List排序
- 插入排序,Java实现
- java实现 排序算法之直接插入排序
- 选择排序—简单选择排序(Simple Selection Sort)原理以及Java实现
- Java之8大排序(二)--直接插入排序,希尔排序(java实现)
- java自带的sort方法实现文件内字符的排序
- java插入排序代码实现
- java 排序算法实现 其二:插入排序
- Java实现插入排序之直接插入排序
- java几种排序简单实现(快速排序,冒泡排序,直接插入排序)