您的位置:首页 > 其它

直接插入排序

2014-06-29 12:42 232 查看
直接插入排序的思路其实并不难,依次将待排序的数据元素按其关键值的大小插入到前面的有序子序列。其实思想并不是很难,该排序认为前面的序列都是有序的,只要找到对应的位置,然后对应位置和之后的序列都往后移动,然后插入该元素。整体代码如下

package com.demo;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
* Created by wk on 2014/6/26.
*/
public class InsertSort {
//直接插入排序
public static void main(String args[]) {
int[] older_arr = getArray(10);
System.out.println("未排序:");
display(older_arr);
int[] new_arr = InsertSort(older_arr);
System.out.println("排序后:");
display(new_arr);

}
static int[] InsertSort(int sorts[]) {
for (int i =1;i<sorts.length;i++)
{
int tmp = sorts[i];
if (tmp>sorts[i-1])
{
int j = i-1;
for (;j>=0&&sorts[j]<tmp;j--)
{
sorts[j+1]=sorts[j];
}
sorts[j+1] = tmp;
}
}
return sorts;
}
public static void display(int[] arrays) {
for (Integer i : arrays)
System.out.print(i + ",");
}

//获取不重复随机数
public static int[] getArray(int n) {
List<Integer> list = new ArrayList<Integer>();
int[] ins = new int
;

for (int i = 0; i < n; i++) {
int number = new Random().nextInt(1000);
if (!list.contains(number)) {
list.add(number);
ins[i] = number;

}
}
return ins;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: