您的位置:首页 > 编程语言 > Java开发

基础算法(三)---插入排序(Java)

2017-05-01 14:43 211 查看
插入排序的具体步骤如下:

从第一个元素开始,该元素可以认为已经被排序

取出下一个元素,在已经排序的元素中从后向前扫描

如果该元素(已排序)大于新元素,则将该元素移到下一位置

重复步骤3,知道找到已排序的元素小于或者等于新元素的位置

将新元素放到该位置中

重复步骤2

public class InserttionSort{
pulic static <T extends  Comparable<? super T>> void insertionSort(T[] a){
int j;
for (int p = 1; p < a.length; p++) {
T tmp = a[p];
for (int j = p; j > 0 && tmp.compareTo(a[j-1])<0 ; j--) {
a[j] = a[j-1];
}
a[j]=tmp;
}
}
}


package SortAlgorithm;

/**
* Created by Promacanthus on 2017/6/12.
*/
public class InsertSort {
int[] ints;

InsertSort(int[] ints) {
this.ints = ints;
}

public void insertsort(int[] ints) {
for (int i = 0; i < ints.length; i++) {
for (int j = i; (j > 0) && (ints[j] < ints[j - 1]); j--) {
swap(ints, j, j - 1);
}
}
}

private void swap(int[] ints, int j, int i) {
int temp = ints[j];
ints[j] = ints[i];
ints[i] = temp;
}

public static void main(String[] args){
int[] a = {4, 2, 1, 6, 3, 6, 0, -5, 1, 1};
InsertSort insertSort = new InsertSort(a);
insertSort.insertsort(a);

for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 插入排序