二分插入排序 也称折半插入排序,
1、基本思想:设数列[0....n]分为两部分一部分是[0...i]为有序序列,另一部分是[i+1.....n]为无序序列,从无序序列中取一个数
x ,利用二分查找算法找到 x 在有序序列中的插入位置并插入,有序序列还是有序的,接下来重复上述步骤,直到无序序列全部插入有序序列 ,这是整个序列只剩下有序序列即有序了。
2、代码:
{...
分类:
其他好文 时间:
2014-06-22 22:33:03
阅读次数:
187
插入排序
包括:直接插入排序,二分插入排序(又称折半插入排序),链表插入排序,希尔排序(又称缩小增量排序)。属于稳定排序的一种(通俗地讲,就是两个相等的数不会交换位置)
。
直接插入排序:
1、算法的伪代码(这样便于理解):
INSERTION-SORT (A, n) A[1 . . n]
for...
分类:
其他好文 时间:
2014-06-22 22:23:22
阅读次数:
218
基数排序算法,其原理是将整数按位数切割为不同的数组,然后按每个位数分别进行比较。
基数排序的方法既可以采用LSD(Least significant digital),从键值的最右边开始,也可以采用MSD(Most significant digital),从键值的最左边开始。
基数排序法的效率主要取决于排序不同位的数字时所采用的稳定的中间排序算法。
常用的稳定的排序算法包括:插入排序、合并排序、冒泡排序、折半插入排序、基数排序等。
基数排序算法相比于其他算法...
分类:
其他好文 时间:
2014-06-17 22:55:55
阅读次数:
414
对c语言系统库函数、堆排序、希尔排序、折半插入排序、快速排序消耗时间的比较...
分类:
编程语言 时间:
2014-06-10 15:02:33
阅读次数:
305
插入排序
直接插入排序
// 直接插入排序
void DirectInsertSort(int arr[], int lhs, int rhs)
{
int temp;
for (int i = lhs+1; i = 0 && temp < arr[j]...
分类:
其他好文 时间:
2014-06-07 14:31:54
阅读次数:
274
思路:从数组第二个元素开始折半插入,即把第一个元素看成有序的,然后下标后移一位,直到数组最后一个元素折半插入成功,注意:数组第0号元素不存值,用来存储每次要插入的数据步骤:1.判断要插入的元素是否处于有序状态,是则继续,否则下标后移
2.利用折半查找要插入的下标,记为t 3.从t开始所有数...
分类:
其他好文 时间:
2014-06-05 17:39:25
阅读次数:
177
/// /// 步骤: /// 1.记录当前待排元素 /// 2.标记顺序表有序查找区域下界和上界
/// 3.在顺序表有序查找区域中折半查找等待排序元素的位置 /// 4.把顺序表有序查找区域的某些元素后移一位,以空出位置给等待排序的元素 ///
5.在空出的位置填写当前排序元素 ...
分类:
其他好文 时间:
2014-05-21 17:18:45
阅读次数:
215