一、希尔排序(Shell Sort)
希尔排序(Shell Sort)是一种插入排序算法,因D.L.Shell于1959年提出而得名。Shell排序又称作缩小增量排序。
二、希尔排序的基本思想
希尔排序的中心思想就是:将数据进行分组,然后对每一组数据进行排序,在每一组数据都有序之后
,就可以对所有的分组利用插入排序进行最后一次排序。这样可以显著减少交换的次数,以达到加快排序速度的...
分类:
编程语言 时间:
2015-06-19 01:31:56
阅读次数:
232
快速排序思想:快速排序的思想巧秒,利用分治的思想,可以极快排序数组。其基本思想分两步:
1. 给你一个数组,让你选择数组中的任意一个数作为基数,然后让数组中所有比基数小的数都放在放在基数的左边,所有比基数大的数放在基数的右边。
2. 将刚才基数的位置作为中点,将数组中基数左边的所有元素做1操作,将基数右边的所有元素做1操作。
看到步骤2,就很容易想到这里面是递归调用的。所以我们的关键任务就是如...
分类:
编程语言 时间:
2015-05-09 15:05:48
阅读次数:
361
之前写过一篇博客是教你几种基本的常见排序算法 ,就说到会有后续的文章出来,继续写写排序问题,参加一些公司的电话面试,还总是会问到写关于排序的问题,大多是关于堆排序,快排序或者海量数据排序,或者从很到的数字序列中找到些中间位置的数字,或者是前K个最小的数字等相关问题,今天正好有空写了写堆排序的代码,自己存储一下,也拿出来共享给大家!
堆排序的算法思路,网上一搜索一堆,本科的课本里面也有较为详细的讲解...
分类:
编程语言 时间:
2015-03-21 23:00:13
阅读次数:
307
package?org.rev.algorithm;
/**
?*?归并排序,属于交换排序,时间复杂度为算法复杂度Ο(n?log?n),比快排序慢,但稳定。
?*?
?*?1.?将一个序列递归拆分成多个有序的子序列。
?*?
?*?2.?递归合并...
分类:
编程语言 时间:
2015-02-03 11:26:30
阅读次数:
233
问题描述:n个不同的数,范围在0~10的7次方之间(为了追求模拟效果,也就是排序的内容超出了内存容量,用的10的8次方),然后需要我们用有限的内存和时间内尽快排序,注意,不能有相同的数字.否则出错1.问题准备,首先要准备0-10的7次方之间的数据打乱后放到磁盘中,那么我们有两种实现方式实现方式1: ...
分类:
编程语言 时间:
2015-01-11 21:36:07
阅读次数:
355
http://www.cnblogs.com/archimedes/p/quick-sort-algorithm.html
分类:
编程语言 时间:
2014-10-24 00:08:14
阅读次数:
378
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实作出来。使用快速...
分类:
其他好文 时间:
2014-10-09 22:57:21
阅读次数:
256
void BubbleSort(int R[],int n) //冒泡排序 时间复杂度O(n2)
{
int i,j,temp,flag;
for(i = n;i>=2;i--)
{
flag = 0;
for(j=2;jR[j])
{
temp = R[j-1];
R[j-1] = R[j];
R[...
分类:
编程语言 时间:
2014-08-28 22:45:43
阅读次数:
269
题目:
选择排序法的概念简单,每次从未排序部份选一最小值,插入已排序部份的后端,其时间主要花费于在整个未排序部份寻找最小值,如果能让搜寻最小值的方式加 快,选择排序法的速率也就可以加快
Heap排序法让搜寻的路径由树根至最后一个树叶,而不是整个未排序部份,从而可以加快排序的过程,因而称之为改良的选择排序法。
整个堆排序的过程分建堆、取值、调整为新的堆三个过程。分别如下示:(以最小堆积树为例。关于HeapTree请参阅数据结构与算法)...
分类:
其他好文 时间:
2014-08-21 00:14:23
阅读次数:
193
到目前为止, 我们已经学习到了插入排序, 冒泡排序, 选择排序(selection)。 这些排序算法都是comparision based sorting algorithms(即涉及到元素大小的比较来决定元素的先后顺序)。 而且算法的时间复杂度上均为O(n^2)。但是comparision based 的排序算法远非这几个算法。 而且可以通过利用其它的一些手段(例如divide and conq...
分类:
编程语言 时间:
2014-07-11 08:29:25
阅读次数:
441