码迷,mamicode.com
首页 >  
搜索关键字:快速排序    ( 3850个结果
插入排序 | 冒泡排序 | 希尔排序 | 堆排序 | 快速排序 | 选择排序 | 归并排序
以下是最近学习各种算法的代码实现:#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
快速排序的c++实现 和 python 实现
最近在学python,其中有个要求实现快速排序的练习,就顺便复习了c++的快速排序实现。快速排序的基本思想是,通过一轮的排序将序列分割成独立的两部分,其中一部分序列的关键字(这里主要用值来表示)均比另一部分关键字小。继续对长度较短的序列进行同样的分割,最后到达整体有序。在排序过程中,由于已经分开的两...
分类:编程语言   时间:2014-07-01 19:37:52    阅读次数:305
程序员必须知道的10大基础实用算法及其讲解
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)
数组中出现次数超过一半的数字 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 数组中有一个数字出现的次数超过数组长度的一半, 请找出这个数字.使用快速排序(QuickSort)的方法, 把中值(middle)和索引(index)匹配, 输出中值, 并检测是否符合要求.代码: /* * main.cpp * * Created on: 20...
分类:其他好文   时间:2014-06-30 19:54:58    阅读次数:222
编程算法 - 最小的k个数 代码(C)
最小的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
【剑指offer】Q29:数组中出现次数超过一半的数字
就本题而言,个人觉得练习下partition函数是有必要的,毕竟它是快速排序的核心,是基础性的东西,也是必须要掌握的,至于书中给出的“取巧”性解法,是属于个人思维能力的考察,是一种考虑问题的思路,不是一两个问题就能练就的。 partition函数,包括快速排序,是一定要信手拈来的,必须的。 import random def MoreThanHalf(array): if len(array...
分类:其他好文   时间:2014-06-30 15:50:52    阅读次数:225
排序(5)---------快速排序(C语言实现)
快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。 步骤为: 1,从数列中挑出一个元素,称为 "基准", 2,重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区操作。 3,递归地把小于基准值元素的子数列和大于基准值元素的子数列排序。 4,递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递...
分类:编程语言   时间:2014-06-30 08:19:12    阅读次数:203
编程算法 - 快速排序算法 代码(C)
快速排序算法 代码(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
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!