importjava.util.Random;/*** 排序测试类** 排序算法的分类如下: *1.插入排序(直接插入排序、折半插入排序、希尔排序); *2.交换排序(冒泡泡排序、快速排序);* 3.选择排序(直接选择排序、堆排序); *4.归并排序; *5.基数排序。** 关于排序方法的选择: *...
分类:
编程语言 时间:
2015-09-16 19:36:15
阅读次数:
413
和直接插入排序相似,但是在查找有序子表的时候采用折半查找void InsertSort(ElemType A[], int n){ int i, j, low, high, mid; for(i=2; iA[0].key)//查找左半边子表 high=mid-1; else//查找右半边子表 low...
分类:
编程语言 时间:
2015-08-21 19:05:33
阅读次数:
122
由于插入排序的基本思想是在一个有序序列中插入一个新的记录,则可以利用"折半查找"查询插入位置,由此得到的插入排序算法为"折半插入排序"。算法如下: void BInsertSort (SqList &L)
{
// 对顺序表L作折半插入排序
for ( i=2; i<length; ++i )
{
r[0] = r[i];...
分类:
编程语言 时间:
2015-08-17 14:07:35
阅读次数:
117
排序分内排序和外排序。内排序:指在排序期间数据对象全部存放在内存的排序。外排序:指在排序期间全部对象个数太多,不能同时存放在内存,必须根据排序过程的要求,不断在内、外存之间移动的排序。内排序的方法有许多种,按所用策略不同,可归纳为五类:插入排序、选择排序、交换排序、归并排序、分配排序和计数排序。插入排序主要包括直接插入排序,折半插入排序和希尔排序两种;选择排序主要包括直接选择排序和堆排序;交换排序...
分类:
编程语言 时间:
2015-08-03 22:53:18
阅读次数:
251
排序思路:通过折半查找的方式找到合适的插入位置再插入。算法实现:public class BiInsertSort { public static void biInsertSort(int arr[]){ for(int i = 1; i = right+1; j --){ ...
分类:
编程语言 时间:
2015-07-27 18:09:00
阅读次数:
118
package insert_sort;
import java.util.Random;
/*各类插入排序
* ------数据存储范围1~s.length-1-------
*主要包括
*直接插入排序
*折半插入排序
*希尔排序
*以下为代码实现,其中折半查找函数是为了供折半插入排序使用
*/
public class Sort {
/*
* 折半查...
分类:
编程语言 时间:
2015-07-27 01:57:28
阅读次数:
224
一、直接插入排序稳定,时间复杂度:最好O(n)、最差O(n^2)、平均O(n^2)。空间复杂度O(1)void InsertSort(int L[], int n){ int i, j,key; for (i = 1; i= 0 && key =high+1;j--)//后移 //j >= low ...
分类:
编程语言 时间:
2015-07-22 22:06:11
阅读次数:
116
内部排序算法总结:排序算法有各自的时间复杂度,并不代表时间复杂度高的算法在任何情况下就比时间复杂度低的算法要低效,相反也一样。排序算法按照其最基本的操作可以分为以下几种类型:插入类排序算法直接插入排序算法折半插入排序算法希尔排序算法选择类排序算法简单选择排序算法堆排序交换类排序算法冒泡排序快速排序1...
分类:
编程语言 时间:
2015-07-20 23:08:18
阅读次数:
147
排序可分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,称为内排序;如果排序过程中需要使用外存,则成为外排序。
内排序有以下几类:
插入类排序:直接插入排序、二分法(折半)插入排序、希尔(缩小增量)排序
选择类排序:简单选择排序、堆排序
交换类排序:冒泡排序、快速排序、三路划分的快速排序
归并类排序:二路归并排序
基数类排序:MSD基数排序、LSD基数排序
各种内部排序算法的比较直接插入...
分类:
编程语言 时间:
2015-07-18 11:09:15
阅读次数:
165
基本思想折半插入排序的基本思想与直接插入排序一样,在插入第i(i≥1)个元素时,前面i-1个元素已经排好序。区别在于寻找插入位置的方法不同,折半插入排序是采用折半查找法来寻找插入位置的。
折半查找法的基本思路是:用待插元素的值与当前查找序列的中间元素的值进行比较,以当前查找序列的中间元素为分界,确定待插元素是在当前查找序列的左边还是右边,如果是在其左边,则以该左边序列为当前查找序列,右边也类似。按...
分类:
编程语言 时间:
2015-07-18 08:24:26
阅读次数:
136