排序算法---插入排序(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); } }
相关文章推荐
- 排序算法-插入排序 Insertion Sort Θ(n-n)
- 经典排序算法 – 插入排序Insertion sort
- 经典算法(8)- 插入排序(Insertion Sort) 及三个基本排序算法的比较
- 排序算法(一)—插入排序(Insertion sort)
- 基础排序算法 – 插入排序Insertion sort
- 排序算法——插入排序(Insertion Sort)
- 排序算法总结之插入排序 Insertion Sort
- 排序算法 之 插入排序InsertionSort
- 排序算法——插入排序(Insertion Sort)
- 排序算法--插入排序(Insertion Sort)_C#程序实现
- 基础排序算法 – 插入排序Insertion sort
- 经典排序算法 – 插入排序Insertion sort
- 插入排序(Insertion Sort)
- Insertion Sort List 链表的插入排序
- 静态链表插入排序(List Insertion Sort)算法
- 使用python实现排序算法(Insertion Sort)
- 【算法】插入排序 insertion_sort
- 插入排序(insertion_sort)详解
- insertionSort()插入排序
- 【DS】排序算法之插入排序(Insertion Sort)