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

插入排序-java实现

2016-07-10 11:40 417 查看

插入排序:

通过反复的将某一个特定的值插入到已经排序好的子集中来完成对列表值的排序。

排序策略:

1.对列表的头两个值进行排序;

2.将第三个值插入到已排序子集的恰当位置;

3.将列表后续的值依次插入到排序子集的恰当位置,直到整个列表排序完成。

例子:

初始:2 8 5 1 3

step1: 2 8 5 1 3 (对表头的2 和 8进行排序)

step2: 2 5 8 1 3 (插入5)

step3: 1 2 5 8 3 (插入1)

step4: 1 2 3 5 8 (插入3)

最终:1 2 3 5 8

Code:

/*
*Created on 2016年7月10日
*Copyright 2016 Yong Cai Limited crop. All Rights Reserved
*
*/

package org.cy.sort;

public class InsertionSort {

public static void main(String[] args) {
String[] dataStr = {"cc","yy","gg","aa"};
printArr(insertionSort(dataStr));
}

public static <T extends Comparable<? super T>> T[] insertionSort(T[] data){
for(int index = 1; index < data.length; index++){
T key = data[index];
int pos = index;
while(pos > 0 && data[pos - 1].compareTo(key) > 0){
data[pos] = data[pos - 1];
pos--;
}
data[pos] = key;
}

return data;
}

public static <T> void printArr(T[] data){
int len = data.length;
for(int i = 0; i < len; i++){
System.out.print(data[i] + " ");
}
System.out.println();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息