码迷,mamicode.com
首页 >  
搜索关键字:排序算法    ( 6430个结果
排序算法之stooge排序
stooge排序是一种递归排序算法,这种排序算法不仅慢于一般的有效排序算法(如:插入排序,合并排序,堆排序和快速排序),甚至慢于冒泡排序。是一种简单但低效的排序算法。...
分类:其他好文   时间:2014-06-07 01:26:17    阅读次数:173
排序算法之冒泡排序
冒泡排序法是一种经典的、入门级的排序算法。它重复地遍历整个数组,对数组的元素进行两两比较,如果两数的顺序有误,则将两数字交换。 由于在比较的过程中,最小的数先变换到数列的顶端,其次是第二小的数……直至所有数字完成排序,因而得名冒泡排序。...
分类:其他好文   时间:2014-06-05 11:39:09    阅读次数:194
排序算法之快速排序的随机化版本
快速排序的随机化版本并不是一种全新的排序算法,而是在快速排序的基础上加入随机化的因素,因素,因而仍然将其作为第四种方法(快速排序)的一种补充。       为什么要提出快速排序的随机化版本,主要是对于快速排序法其划分情况的好坏会直接影响排序的效率,而且,快速排序的平均性能较好,所以,加入随机化成分,可以使该算法对于所有输入均能获得较好的平均情况性能。...
分类:其他好文   时间:2014-06-05 03:30:11    阅读次数:225
笔试算法题(54):快速排序实现之三路划分, 三元中值法和插入排序处理小子文件
议题:快速排序算法实现之三(三路划分遍历,解决与划分元素相等元素的问题)分析:算法原理:使用三路划分策略对数组进行划分(也就是荷兰国旗问题,dutch national flag problem)。这个实现是对实现二的改进,它添加处理等于划分元素的值的逻辑,将所有等于划分元素的值集中在一起,并且以后...
分类:其他好文   时间:2014-06-03 09:51:51    阅读次数:386
笔试算法题(55):快速排序实现之非递归实现,最小k值选择(non-recursive version, Minimal Kth Selection of Quick Sort)
议题:快速排序实现之五(非递归实现,短序列优先处理,减少递归栈大小)分析:算法原理:此算法实现适用于系统栈空间不足够快速排序递归调用的需求,从而使用非递归实现快速排序算法;使用显示下推栈存储快速排序中的每一次划分结果 (将left和right都压入堆栈),并且首先处理划分序列较短的子序列(也就是在得...
分类:其他好文   时间:2014-06-03 08:23:29    阅读次数:367
排序算法----归并排序
归并排序完全遵循分治模式,主要操作分为三步:1.分解:分解待排序的n个元素序列为2个n/2个元素的子序列。2.解决:使用归并排序递归的排序两个子序列。3.合并:合并两个已排序的子序列。最重要的步骤就是合并2个已经排序的序列。例如:A和B都是从小到大排序的序列。依次对比A的第一个元素和B的第一个元素,...
分类:其他好文   时间:2014-05-31 01:27:11    阅读次数:268
快速排序算法
快排,从小到大排序 1 void quicksort(int a[],int low,int high) 2 { 3 int i=low; 4 int j=high; 5 int temp=a[i]; 6 if(i=temp&&i<j) j--; ...
分类:其他好文   时间:2014-05-30 08:03:25    阅读次数:268
线性排序:计数排序与基数排序
前面讨论了几种排序算法,三种O(n2)时间复杂度的排序算法:插入,选择和冒泡和两种O(nlgn)的算法:快速排序和归并排序。这几种排序数组除了归并排序需要额外的数组开销。其他几个的空间复杂度都是O(1)。通过比较交换元素完成排序.计数排序是利用空间换取时间,增加了两个额外数组的开销,而且计数排序有一...
分类:其他好文   时间:2014-05-30 03:29:19    阅读次数:241
浅谈希尔排序-----摘录
希尔排序一。个人理解希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。其实,希尔排序本质也就是直接插入算法的升级,希尔的基本思想,就是先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的...
分类:其他好文   时间:2014-05-29 21:49:30    阅读次数:516
排序算法----堆排序
堆排序算法使用二叉堆实现排序,树上的每一个节点对应数组中的一个元素。第一步:使用MAX_HEAPIFY维护一个最大堆(所有孩子节点都必须小于或等于其父节点)。它的输入为一个数组A和一下标i,调用MAX_HEAPIFY时,假设节点i的左右子树都是最大堆。伪码: 1 LEFT(i) 2 return.....
分类:其他好文   时间:2014-05-29 21:35:08    阅读次数:364
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!