排序算法分类:内部排序(在排序过程中不需要访问外存就可以完成排序)外部排序内部排序分类:交换排序冒泡排序快速排序选择排序直接选择排序堆排序插入排序直接插入排序希尔排序合并排序外部排序:
常见的是多路归并算法,即将原文件分为多个能够一次装入内存一部分,分别把每一部分调入内存完成排序,然后对已经排序的....
分类:
其他好文 时间:
2014-06-29 14:23:42
阅读次数:
314
1 #include "iostream" 2 #include "windows.h" 3 #define MAX 0x7fffffff 4 using namespace std; 5 6 void merge(int s,int q,int e,int A[]){ 7 int i,...
分类:
其他好文 时间:
2014-06-18 21:52:18
阅读次数:
234
这篇文章将讨论:1) 分治策略的思想和理论2) 几个分治策略的例子:合并排序,快速排序,折半查找,二叉遍历树及其相关特性。说明:这几个例子在前面都写过了,这里又拿出来,从算法设计的策略的角度把它们放在一起来比较,看看分治是如何实现滴。由于内容太多,我将再花一篇文章来写4个之前没有写过的分治算法:.....
分类:
其他好文 时间:
2014-06-18 21:06:23
阅读次数:
289
近几天研究了几个常用算法,插入,选择,合并,用测试程序生成几个大小不一样的输入文件,数量从几千万到上亿。刚开始测试时,把每次排序数只调到1000,生成的测试结果显示,插入排序,选择排序,合并排序依次性能下降。
转头一想,不对呀,这与书上不符。突然一想o(n2),貌似我的n比较小,于是把将每次供排.....
分类:
其他好文 时间:
2014-06-16 00:57:42
阅读次数:
187
合并排序算法是用分治策略实现对N个元素进行排序的算法。其基本思想是:将待排序元素分成大小大致相同 的两个子集合,分别
对两个子集合进行排序,最终将排好序的子集合合并成所要求的排好序的集合。重点:1.分治的实现2.合并的实现分治,就是把整个集合的元素一直除2化分,一直化为到没有两个元素开始合并。图:分...
分类:
其他好文 时间:
2014-06-08 02:06:21
阅读次数:
289
原文:浅谈算法和数据结构: 四
快速排序上篇文章介绍了时间复杂度为O(nlgn)的合并排序,本篇文章介绍时间复杂度同样为O(nlgn)但是排序速度比合并排序更快的快速排序(Quick
Sort)。快速排序是20世纪科技领域的十大算法之一 ,他由C. A. R. Hoare于1960年提出的一种划分交...
分类:
其他好文 时间:
2014-06-07 20:15:43
阅读次数:
362
stooge排序是一种递归排序算法,这种排序算法不仅慢于一般的有效排序算法(如:插入排序,合并排序,堆排序和快速排序),甚至慢于冒泡排序。是一种简单但低效的排序算法。...
分类:
其他好文 时间:
2014-06-07 01:26:17
阅读次数:
173
堆排序在运行时间上与合并排序相似,同时又是一种原地(in place)排序算法(在任何时候,数组中只有常数个元素存储在输入数组以外),结合了插入排序和合并排序两种排序算法的优点。...
分类:
其他好文 时间:
2014-06-04 22:39:55
阅读次数:
316
合并排序和快速排序都是使用递归的基本排序方法,都有着不错的运行效率。下面的代码,使用了这两种排序方法对字符串集合进行按长度排序。
分类:
其他好文 时间:
2014-05-31 04:18:19
阅读次数:
289
#includeusing namespace std; void merge(int
left,int mid,int right,int a[],int b[]){ int i = 0; int cursor1 = left; int
cursor2 = mid +1; while(cu...
分类:
其他好文 时间:
2014-05-28 20:09:44
阅读次数:
300