【数据结构与算法】直接插入排序
2014-08-11 10:53
531 查看
直接插入排序的时间复杂度的O(N^2),空间复杂度是O(1)。
下面是代码:
/**
* 源码名称: InsertionSort.java
* 日期:2014-08-11
* 程序功能:直接插入排序
* 版权:CopyRight@A2BGeek
* 作者:A2BGeek
*/
public class InsertionSort {
public void insertionSort(int[] in) {
int length = in.length;
int i, j;
for (i = 1; i < length; i++) {
int tmp = in[i];
for (j = i - 1; j >= 0 && tmp < in[j]; j--) {
in[j + 1] = in[j];
}
in[j + 1] = tmp;
printArray(in);
}
}
public void printArray(int[] in) {
for (int i : in) {
System.out.print(i + " ");
}
System.out.println();
}
public static void main(String[] args) {
int[] testCase = { 1, 3, 4, 10, 2, 5, 6, 7, 9, 11 };
InsertionSort mInsertionSort = new InsertionSort();
mInsertionSort.printArray(testCase);
mInsertionSort.insertionSort(testCase);
mInsertionSort.printArray(testCase);
}
}
下面是代码:
/**
* 源码名称: InsertionSort.java
* 日期:2014-08-11
* 程序功能:直接插入排序
* 版权:CopyRight@A2BGeek
* 作者:A2BGeek
*/
public class InsertionSort {
public void insertionSort(int[] in) {
int length = in.length;
int i, j;
for (i = 1; i < length; i++) {
int tmp = in[i];
for (j = i - 1; j >= 0 && tmp < in[j]; j--) {
in[j + 1] = in[j];
}
in[j + 1] = tmp;
printArray(in);
}
}
public void printArray(int[] in) {
for (int i : in) {
System.out.print(i + " ");
}
System.out.println();
}
public static void main(String[] args) {
int[] testCase = { 1, 3, 4, 10, 2, 5, 6, 7, 9, 11 };
InsertionSort mInsertionSort = new InsertionSort();
mInsertionSort.printArray(testCase);
mInsertionSort.insertionSort(testCase);
mInsertionSort.printArray(testCase);
}
}
相关文章推荐
- 【1】数据结构与算法-1 直接插入排序法
- 【数据结构与算法】【排序】直接插入排序的代码实现
- 数据结构与算法——直接插入排序
- 数据结构与算法之三直接插入排序
- 【数据结构与算法 03】直接插入排序
- 数据结构与算法学习之路:直接插入排序
- 数据结构与算法——插入类排序(直接插入排序,希尔排序)
- 数据结构与算法---直接插入排序
- 数据结构算法之排序系列Java、C源码实现(3)--直接选择排序
- Java数据结构及算法实例:插入排序 Insertion Sort
- 数据结构与算法之二分法插入排序
- 数据结构之---C语言实现直接插入排序
- 【数据结构与算法】内部排序之一:插入排序和希尔排序的N中实现(不断优化,附完整源码)
- 数据结构之插入排序--直接插入排序
- 数据结构之排序:直接插入排序
- 数据结构之直接插入排序、折半插入排序、希尔排序算法
- C/C++,数据结构实现两个链表的合并(尾插法建立单链表,求链表长度,直接插入排序)
- 数据结构——直接插入排序
- 数据结构——直接插入排序
- 数据结构(五)之直接插入排序