您的位置:首页 > 其它

排序算法---插入排序(Insertion Sort)

2017-07-29 17:28 375 查看
查看原文:简书地址

算法基本思想:

插入排序(Insertion Sort)算法通过对未排序的数据执行逐个插入至合适的位置而完成排序工作。



排序流程:

首先对数组的前两个数据进行从小到大排序

然后将第三个数据与前面排好的数据进行比较,把第三个数插入合适的位置

然后将第四个数据插入到前三个数据中

重复此步骤,直到最后一个数插入合适的位置为止,到此排序完成

代码实现

import java.util.Arrays;

public class InsertionSort {
public static void sort(int[] arr) {
int len = arr.length;
int tmp;//要插入的数据
int istIndex;//插入位置索引
System.out.println("原始顺序: " + Arrays.toString(arr));
for (int i = 1; i < len; i++) {
if (arr[i] < arr[i - 1]) {
tmp = arr[i];
istIndex = i;
while (istIndex > 0 && arr[istIndex-1] > tmp) {
//插入位置往前移,寻找合适位置
arr[istIndex] = arr[istIndex - 1];
istIndex--;
}
arr[istIndex] = tmp;
}
System.out.println("第" + i + "趟排序:" + Arrays.toString(arr));
}
}

public static void main(String[] args) {
int[] arr = new int[10];
//初始化数组
for (int i = 0; i < 10; i++) {
arr[i] = (int) (Math.random() * (100 + 1));
}
InsertionSort.sort(arr);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: