以下是最近学习各种算法的代码实现:#include #include #include #include typedef int EleType;typedef int (*CompFunc)(void *,void *);int IntComp(void * a,void *b){ if(*...
分类:
其他好文 时间:
2014-07-08 00:15:54
阅读次数:
293
最近在学python,其中有个要求实现快速排序的练习,就顺便复习了c++的快速排序实现。快速排序的基本思想是,通过一轮的排序将序列分割成独立的两部分,其中一部分序列的关键字(这里主要用值来表示)均比另一部分关键字小。继续对长度较短的序列进行同样的分割,最后到达整体有序。在排序过程中,由于已经分开的两...
分类:
编程语言 时间:
2014-07-01 19:37:52
阅读次数:
305
2014-06-17WEB开发者 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(i....
分类:
其他好文 时间:
2014-07-01 18:48:53
阅读次数:
220
首先简单谈下快速排序的特点,时间复杂度O(nLog n),最差时间复杂度O(n^2).是一种不稳定的排序方法。基本思想是分治法,这位大大的http://blog.csdn.net/morewindows/article/details/6684558 讲的非常清楚了,分治法+挖坑法,我就不多说了。就是以某个数为参照,使得左边的都小于他,右边的数都大于他。然后对他的左右两个区间采取同样的方法进行递归...
分类:
其他好文 时间:
2014-07-01 11:07:47
阅读次数:
254
排序算法基本陈述容易理解,之后会详细解析希尔排序、堆排序、归并排序、快速排序、简单选择排序、直接插入排序等排序算法。...
分类:
其他好文 时间:
2014-07-01 06:37:39
阅读次数:
188
数组中出现次数超过一半的数字 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 数组中有一个数字出现的次数超过数组长度的一半, 请找出这个数字.使用快速排序(QuickSort)的方法, 把中值(middle)和索引(index)匹配, 输出中值, 并检测是否符合要求.代码: /*
* main.cpp
*
* Created on: 20...
分类:
其他好文 时间:
2014-06-30 19:54:58
阅读次数:
222
最小的k个数 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 输入n个整数, 找出其中的最小k个数.使用快速排序(Quick Sort)的方法求解, 把索引值(index)指向前k个数.代码:/*
* main.cpp
*
* Created on: 2014.6.12
* Author: Spike
*/
/*eclip...
分类:
其他好文 时间:
2014-06-30 18:16:34
阅读次数:
204
就本题而言,个人觉得练习下partition函数是有必要的,毕竟它是快速排序的核心,是基础性的东西,也是必须要掌握的,至于书中给出的“取巧”性解法,是属于个人思维能力的考察,是一种考虑问题的思路,不是一两个问题就能练就的。
partition函数,包括快速排序,是一定要信手拈来的,必须的。
import random
def MoreThanHalf(array):
if len(array...
分类:
其他好文 时间:
2014-06-30 15:50:52
阅读次数:
225
快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。
步骤为:
1,从数列中挑出一个元素,称为 "基准",
2,重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区操作。
3,递归地把小于基准值元素的子数列和大于基准值元素的子数列排序。
4,递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递...
分类:
编程语言 时间:
2014-06-30 08:19:12
阅读次数:
203
快速排序算法 代码(C)本文地址: http://blog.csdn.net/caroline_wendy经典的快速排序算法, 作为一个编程者, 任何时候都要完整的手写.代码:/*
* main.cpp
*
* Created on: 2014.6.12
* Author: Spike
*/
/*eclipse cdt, gcc 4.8.1*/
#include
#in...
分类:
其他好文 时间:
2014-06-30 06:15:06
阅读次数:
225