直接插入排序
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;
}
}
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;
}
}
相关文章推荐
- 第十六周项目1-验证算法-直接插入排序
- 直接插入排序
- 直接插入排序经典代码
- 【数据结构与算法 03】直接插入排序
- 直接插入排序
- 第十六周 项目 1 - 验证算法之(1)直接插入排序
- 常见排序算法之直接插入排序
- java之插入排序(直接插入排序)
- 图解"数据结构--内部排序算法"----插入排序:直接插入排序、希尔排序
- (一)排序简介:直接插入排序、冒泡排序、二分查找排序
- 排序算法之直接插入排序
- 直接插入排序
- 直接插入排序
- 排序_Dir_Insert(直接插入排序)
- 直接插入排序 java
- C语言——直接插入排序
- 直接插入排序
- 排序算法之直接插入排序
- 十大基础排序 · 一 --- 直接插入排序(稳定)