算法描述:
伪代码:
注:伪代码中的下标从1开始
过程示意图:
个人简单理解解释:
这个算法其实是个比较基础的算法了,也是一个常见的问题,其思想主要是将一个元素插入到一个已经排好序的序列中,操作就是从第二个元素开始,将这个元素保存在一个临时变量中,依次与前面的所有元素从后到前进行比较,如果小于等于(或者大于等于)前面的元素,则把前面的元素向后移动,直至不符合条件为止。
就好比拿着一张牌,将这张牌依次与前面的每一张牌进行比较,然后插到相应的位置上。
Java实现:
/** * 插入排序算法 * @author henushang */ public class InsertionSort { public static void main(String[] args) { int[] array = {5, 2, 4, 6, 1, 3}; int[] sortedArray = insertionSort(array); System.out.println(Utils.printArray(sortedArray)); } /** * 插入排序算法(升序) * @param array * @return * @author henushang */ static int[] insertionSort(int[] array) { for(int j=1; j < array.length; j++) { int key = array[j]; int i = j -1; while (i >= 0 && array[i] > key) { array[i + 1] = array[i]; i --; } array[i + 1] = key; } return array; } }
相关推荐
基于python的排序算法-插入排序Insertion Sort
经典排序算法 - 插入排序Insertion sort 经典排序算法 - 基数排序Radix sort 经典排序算法 - 鸽巢排序Pigeonhole sort 经典排序算法 - 归并排序Merge sort 经典排序算法 - 冒泡排序Bubble sort 经典排序算法 - ...
JavaScript_資料結構與演算法_氣泡排序_Bubble_Sort、插入排序_Insertion_Sort_實作與分析_-
c代码-插入排序-- https://www.runoob.com/data-structures/insertion-sort.html http://c.biancheng.net/view/525.html
排序算法 排序算法_基于C语言实现的排序算法之InsertionSort实现
主要介绍了Java数据结构及算法实例:插入排序 Insertion Sort,本文直接给出实例代码,代码中包含详细注释,需要的朋友可以参考下
插入排序:InSertion_Sort 讲解详见http://blog.csdn.net/fly_yr/article/details/8544847 合并排序:MergeSort 讲解详见http://blog.csdn.net/fly_yr/article/details/8550097 快速排序:QuickSort 讲解详见...
插入排序算法,随机数列,可控制数列的上下界限,c++。
插入排序(Insertion Sort)源码和运行示例,配合博客使用更佳。
C#,单向链表(Simply Linked List)的插入排序(Insertion Sort)算法与源代码 所谓插入排序法乃是将一个数目插入该占据的位置。 假设我们输入的是 “5,1,4,2,3” 我们从第二个数字开始,这个数字是1,我们的...
14.1-Insertion-Sort-kymcbigmouth
插入排序(Insertion Sort) 希尔排序(Shell Sort) 归并排序(Merge Sort) 快速排序(Quick Sort) 堆排序(Heap Sort) 计数排序(Counting Sort) 基数排序(Radix Sort) 桶排序(Bucket Sort) 深度优先搜索...
中文名: 算法导论 原名: Introduction to Algorithms 作者: Thomas H. Cormen Ronald L. Rivest Charles E. Leiserson Clifford Stein 资源格式: PDF 版本: 文字版 出版社: The MIT Press书号: 978-0262033848发行...
麻省理工。算法导论。
直接插入排序
binary sort,二分法查找,binary search, 二分法排序,merge sort 混合排序,shell sort 希尔排序,insertion sort 插入排序。数据结构 data structure
# sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() #计数排序 # sort.quickSort() #快速排序 该排序算法把每次的排序结果都列出来,可供初学...