排序算法分类:内部排序(在排序过程中不需要访问外存就可以完成排序)外部排序内部排序分类:交换排序冒泡排序快速排序选择排序直接选择排序堆排序插入排序直接插入排序希尔排序合并排序外部排序:
常见的是多路归并算法,即将原文件分为多个能够一次装入内存一部分,分别把每一部分调入内存完成排序,然后对已经排序的....
分类:
其他好文 时间:
2014-06-29 14:23:42
阅读次数:
314
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
二分查找也是分治策略和递归一个重要的实例。对于一个有序的数组,二分查找的时间复杂度是O(logn)int binarysearch(int a[],int
s,int e,int k){ int mid =(s+e)/2; if(k==a[mid]) return mid;...
分类:
其他好文 时间:
2014-05-26 02:23:44
阅读次数:
170
Description在这个问题中,你需要分析一个对n个不同数排序的算法。该算法主要通过交换相邻数直到序列有序(升序)。比如:对输入序列
9 1 0 5 4经过一系列交换后变成有序序列 0 1 4 5
9你的任务是计算将序列变成有序最少需要经过多少次交换。Input输入包含多组测试数据。每组第一个是...
分类:
其他好文 时间:
2014-05-20 10:57:05
阅读次数:
296
一 基本概念
分治法,顾名思义分而治之的意思,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
二基本思想及策略
分治法的设计思想是:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
分治策略是:对于一个规模为n的问题,若该问题可以容易地解...
分类:
其他好文 时间:
2014-05-18 14:31:14
阅读次数:
331
一、合并已排序的两个数组,依次比较两个数组元素大小,并按大小加入到暂存数组B,最后保存到A:Algorithm: MERGE(A, p, q,
r)输入:数组A[p...q]和A[q+1...r],各自按升序排列输出:将A[p...q]和A[q+1...r]合并后的升序排序的新数组01. s←p;
...
分类:
其他好文 时间:
2014-05-10 02:43:47
阅读次数:
549