插入排序算法分为直接插入、折半插入和希尔排序 1.直接插入排序 直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已排好序的有序表中,从而得到一个新的、记录数量增1的有序表。 算法步骤 (1)设待排序的记录存放在数组list[1....n]中, (2)循环n-1次,每次使用顺序查找法, ...
分类:
编程语言 时间:
2017-08-09 11:23:13
阅读次数:
186
基本思想 折半插入排序的基本思想与直接插入排序一样,在插入第i(i≥1)i(i≥1)个元素时,前面i?1i-1个元素已经排好序。差别在于寻找插入位置的方法不同。折半插入排序是採用折半查找法来寻找插入位置的。 折半查找法的基本思路是:用待插元素的值与当前查找序列的中间元素的值进行比較,以当前查找序列的 ...
分类:
编程语言 时间:
2017-08-03 22:16:14
阅读次数:
192
就自己简单的理解了一些排序算法(JAVA)思路和代码分享给大家:欢迎大家进行交流。 直接插入排序,折半插入排序,冒泡排序,快速排序 ...
分类:
编程语言 时间:
2017-07-14 22:10:55
阅读次数:
175
排序思路:通过折半查找的方式找到合适的插入位置再插入。 算法实现: 算法分析:不管元素的初始序列为正序还是反序,其时间复杂度都和直接插入排序的一样为O(n2)。不同的是折半插入排序中查找的平均比较次数为log2(i+1)-1, 所以就平均性能而言,折半插入排序优于直接插入排序。 同样,折半插排序的空 ...
分类:
编程语言 时间:
2017-06-06 11:59:04
阅读次数:
177
折半插入与直接插入的不同在于,搜索要插入的位置的时候,使用的是折半搜索(二分搜索)。这种查找方式理论上比顺序查找的效率要高。 其代码实现如下: 在内层的while循环,使用的是折半查找,找到在low>high的时候,low的值就是要插入的位置。后面的移动元素和将当前元素插入的操作与直接插入排序是一样 ...
分类:
编程语言 时间:
2017-05-27 14:17:40
阅读次数:
140
因为插入排序的基本思想是在一个有序序列中插入一个新的记录,则能够利用"折半查找"查询插入位置,由此得到的插入排序算法为"折半插入排序"。算法例如以下: void BInsertSort () { // 对顺序表L作折半插入排序 for ( i=2; i<length; ++i ) { <span s ...
分类:
编程语言 时间:
2017-05-13 23:26:46
阅读次数:
219
折半插入排序 折半插入排序(binary insertion sort)是对插入排序算法的一种改进,所谓排序算法过程,就是不断的依次将元素插入前面已排好序的序列中。 在将一个新元素插入已排好序的数组的过程中,寻找插入点时,将待插入区域的首元素设置为a[low],末元素设置为a[high],则轮比较时 ...
分类:
编程语言 时间:
2017-04-22 17:37:17
阅读次数:
153
经典排序算法 – 插入排序Insertion sort 插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到所有插入完成。 插入排序方法分直接插入排序和折半插入排序两种。这里仅仅介绍直接插入排序,折半插入排序留到“查找”内容中进行。 图1演示了对4个元素进行直接插入排序的 ...
分类:
编程语言 时间:
2017-04-17 16:02:58
阅读次数:
218
插入排序的基本方法是:每步将一个待排序的记录按其关键字的大小插到前面已经排序的序列中的适当位置,直到全部记录插入完毕为止。 折半插入排序是对插入排序算法的一种改进,由于排序算法过程中,就是不断的依次将元素插入前面已排好序的序列中。由于前半部分为已排好序的数列,这样我们不用按顺序依次寻找插入点,可以采 ...
分类:
编程语言 时间:
2017-04-16 23:58:52
阅读次数:
388
插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序。 下图演示了对4个元素(4,3,1,2)进行直接插入排序的过程,共需要(a),(b),(c)三次插入。 代码示例: 1 <?php 2 ...
分类:
编程语言 时间:
2017-04-03 14:50:30
阅读次数:
155