介绍给大家一个快速排序的方法:
void sort(int a[ ], int l, int r)
{
int i = l;
int j = r;
int mid = a[(i+j)/2];
do
{
while(a[i]
while(a[j] >mid ) j--;
if( i
{
swap( a[i], a[j] );
}...
分类:
编程语言 时间:
2014-06-20 13:15:03
阅读次数:
292
题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分解题分析:其实就是快速排序的思想.
回想一下快速排序的Partition划分函数,每执行一次划分操作,我们就可以 确定中轴值的最终位置,也就是 中轴值的元素都在 其右....
分类:
其他好文 时间:
2014-06-09 14:10:45
阅读次数:
332
下面是参考《数据结构域算法分析》书上部分代码,结合自己理解写出的快速排序代码...
分类:
其他好文 时间:
2014-06-08 17:29:48
阅读次数:
190
问题
给定N个元素的数组,求第k大的数。
特例
当k=0时,就是求最大值,当k=N-1时,就是求最小值。
应用
顺序统计
求top N排行榜
基本思想
使用快速排序方法中的分区思想,使得a[k]左侧没有更小的数,右侧没有更大的数
性能
快速选择算法的复杂度...
分类:
其他好文 时间:
2014-06-08 09:58:08
阅读次数:
211
高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4
5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做...
分类:
其他好文 时间:
2014-06-08 06:33:48
阅读次数:
228
"; return array_merge($left, array($key),
$right);}$array = array(29,21,3,234,57,76,6,74);$result =
Qsort($array);print_r($result);?>
分类:
Web程序 时间:
2014-06-07 21:26:05
阅读次数:
186
排序算法是我们工作中使用最普遍的算法,常见的语言库中基本都会有排序算法的实现,比如c标准库的qsort,stl的sort函数等。本文首先介绍直接插入排序,归并排序,堆排序,快速排序和基数排序等比较排序算法,然后介绍计数排序,基数排序等具有线性时间的排序算法。本文主要讨论算法的实现方法,并不会过多介绍...
分类:
其他好文 时间:
2014-06-07 21:23:31
阅读次数:
348
常用排序算法有以下几种:冒泡排序、插入排序、快速排序、归并排序、堆排序。本文将对五种常用算法分析并实现。//交换两个元素的值 这里列出几种不同写法void
swap(int *a, int *b){ int c = *a; *a = *b; *b = c;}void swap(in...
分类:
其他好文 时间:
2014-06-07 20:30:48
阅读次数:
315
原文:浅谈算法和数据结构: 四
快速排序上篇文章介绍了时间复杂度为O(nlgn)的合并排序,本篇文章介绍时间复杂度同样为O(nlgn)但是排序速度比合并排序更快的快速排序(Quick
Sort)。快速排序是20世纪科技领域的十大算法之一 ,他由C. A. R. Hoare于1960年提出的一种划分交...
分类:
其他好文 时间:
2014-06-07 20:15:43
阅读次数:
362