排序算法的一种,方法如其名.在一个有序的序列的基础上插入一个新元素从而生成一个新的有序数列的排序方法.时间复杂度O(n2). 插入排序又可细分为,直接插入排序,二分插入排序,希尔排序等等.演示范例使用的方法是直接插入排序. 例: 数组 a = [ 9,2,4,6,11,3,55] 使用插入排序,.....
分类:
编程语言 时间:
2015-10-08 06:49:33
阅读次数:
176
一、折半插入排序(二分插入排序)将直接插入排序中寻找A[i]的插入位置的方法改为採用折半比較,就可以得到折半插入排序算法。在处理A[i]时,A[0]……A[i-1]已经按关键码值排好序。所谓折半比較,就是在插入A[i]时,取A[i-1/2]的关键码值与A[i]的关键码值进行比較,假设A[i]的关键码...
分类:
编程语言 时间:
2015-10-06 09:09:27
阅读次数:
217
一、插入排序 –直接插入排序:将一个记录插入到已经排好序的有虚表中,从而得到一个新的、记录数增1的有序表。 –二分插入排序 –希尔排序 ①直接插入排序(从后向前找到合适位置后插入) 1、基本思想:每...
分类:
编程语言 时间:
2015-09-05 12:35:08
阅读次数:
279
插入排序
基本思想
在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数找到相应位置并插入,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。
java实现
//插入排序
public void insertionSort(){
int len = array.length;...
分类:
编程语言 时间:
2015-08-06 02:07:22
阅读次数:
155
这里对笔试面试最常涉及到的12种排序算法(包括插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序、桶排序、计数排序和基数排序)进行了详解。每一种算法都有基本介绍、算法原理分析、图解/flash演示/视频演示、算法代码、笔试面试重点分析、笔试面试题等板块。
一、插入排序
1)算法简介
插入排序(Insertion Sort)的算法...
分类:
编程语言 时间:
2015-08-02 23:27:29
阅读次数:
289
在直接插入排序的基础上,利用二分(折半)查找算法决策出当前元素所要插入的位置。
二分查找:找到中间元素,如果中间元素比当前元素大,则当前元素要插入到中间元素的左侧;否则,中间元素比当前元素小,则当前元素要插入到中间元素的右侧。
找到当前元素的插入位置i之后,把i和high之间的元素从后往前依次后移一个位置,然后再把当前元素放入位置i。
public class SortMethods {
...
分类:
编程语言 时间:
2015-08-01 17:23:42
阅读次数:
158
一、折半插入排序(二分插入排序)
将直接插入排序中寻找A[i]的插入位置的方法改为采用折半比较,即可得到折半插入排序算法。在处理A[i]时,A[0]……A[i-1]已经按关键码值排好序。所谓折半比较,就是在插入A[i]时,取A[i-1/2]的关键码值与A[i]的关键码值进行比较,如果A[i]的关键码值小于A[i-1/2]的关键码值,则说明A[i]只能插入A[0]到A[i-1/2]之间,故...
分类:
编程语言 时间:
2015-06-24 14:40:37
阅读次数:
147
还有一个:二分插入排序 平均时间O(n2) 稳定1、插入排序在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。直接插入排序是稳定的。算法时间复杂度O(n2)--[n的平方]mai...
分类:
移动开发 时间:
2015-06-15 16:19:28
阅读次数:
184
直接插入排序(Straight Insertion Sort)基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。二分插入排序基本思想:在插入第i个元素时,对前面的0~i...
分类:
编程语言 时间:
2015-05-27 00:43:42
阅读次数:
171