<pre name="code" class="java">package test;
/**
* 直接插入排序:
* 1、基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,
* 现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,
* 直到全部排好顺序。
* 2、性能:O(n2)
*
* @author liyulin
* @version 1.0 2013-10-20 上午11:43:07
*/
public class InsertSort {
/**
* 插入排序
*
* @param data 待排序数据
* @return
*/
public static int[] insertSort(int[] data){
int[] dataSort = data.clone();
for(int i=1; i<dataSort.length; i++){
int temp = dataSort[i];
int j=i-1;
for(; j>=0; j--){
if(temp<dataSort[j]){
dataSort[j+1] = dataSort[j];
} else{
break;
}
}
dataSort[j+1] = temp;
}
return dataSort;
}
public static void main(String[] args) {
int[] data = new int[]{4,5,1,7,5,8,9,3,6,10};
int[] datasort = insertSort(data);
for (int d:datasort) {
System.out.print(d+" ");
}
}
}
直接插入排序
最新推荐文章于 2025-03-09 23:46:07 发布