码迷,mamicode.com
首页 >  
搜索关键字:快速排序 堆排序    ( 5090个结果
Ruby一行代码实现快速排序
1 def quick_sort(a) 2 3 return a if a.size x}) : [] 6 7 end 8 9 array = [72,6,57,88,60,42,83,73,42,48,85] 10 11 p quick_sort(array) #=> [6...
分类:其他好文   时间:2014-05-09 13:43:49    阅读次数:318
排序算法学习之快速排序
快速排序基本思想:选取一个枢轴元素(图简单可选第一个),通过对序列一次遍历(中间涉及到数的交换),将该枢轴放置到序列合适位置,保证其左边数都比它小,右边数都比它大,然后利用递归思想对其左右两个子序列进行同样排序。快熟排序的基本实现过程:将枢轴元素key备份,序列头尾各设置一个游标——i和j,尾部.....
分类:其他好文   时间:2014-05-09 13:01:56    阅读次数:360
排序算法 之 冒泡排序
之前看到一个题目,大概是:有一个长度为n的数组,数组内的元素取值范围为0到m,且不相等,要求元素经过n次移动后使数组有序(即算法的复杂度为O(n))。看到题目后想了快速排序和归并排序发现并不能满足题目要求,直到有次看书有看到了桶排序然后豁然开朗,所以决定把这些排序算法再写一遍,加深记忆。约定:之后的...
分类:其他好文   时间:2014-05-09 10:52:49    阅读次数:333
我的软考之路(六)——数据结构与算法(4)之八大排序
大家经常看到或听到“大数据”三个字,尤其是今年大数据更是火的不能再火的词语。面对大数据,你如果连最基本的算法(排序和查找)都不懂的话,你怎么能从容的应对大数据。无论你的技术多么强,如果没有基础也强不到哪去。        不多说了,我们直接进入今天的主题。                                                            总有人说排序很...
分类:其他好文   时间:2014-05-09 09:06:33    阅读次数:255
算法入门之归并排序(自顶向下方法)
归并排序原理: 归并排序用到的是分治思想,即把一个大问题分成两个小问题,然后把一个小问题再分为两个更小的小问题,从最小的问题开始解决,然后把小问题的结果进行整合,最终解决大问题,这种思想是自顶向下的方法,特点是先进行递归,最终进行排序,在之后的快速排序中可以看到,快速排序特点是先进行排序,后进行递归...
分类:其他好文   时间:2014-05-09 06:15:26    阅读次数:280
Python归并排序(递归实现)
为什么归并排序如此有用?1. 快捷和稳定归并排序成为?一个非常棒的排序算法主要是因为它的快捷和稳定。它的复杂度即使在最差情况下都是O(n log n)。而快速排序在最差情况下的复杂度是O(n^2),当n=20的时候,它比归并要慢4.6倍。2.容易实现#coding:utf-8def merge_so...
分类:编程语言   时间:2014-05-09 03:44:58    阅读次数:386
堆 的取最值删除操作和插入操作
堆的删除 按定义,堆中每次都只能删除第0个数据。为了便于重建堆,实际的操作是将最后一个数据的值赋给根结点,然后再从根结点开始进行一次从上向下的调整。调整时先在左右儿子结点中找最小的,如果父结点比这个最小的子结点还小说明不需要调整了,反之将父结点和它交换后再考虑后面的结点。相当于从根结点将一个数据的“下沉”过程。 堆的插入 每次插入都是将新数据放在数组最后。可以发现从这个新...
分类:其他好文   时间:2014-05-09 02:16:57    阅读次数:255
堆排序算法分析
1 大堆和小堆(max-)...
分类:其他好文   时间:2014-05-08 15:43:56    阅读次数:351
排序总结之选择式排序
一,直接选择排序 介绍:直接选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素...
分类:其他好文   时间:2014-05-08 05:10:31    阅读次数:341
快速排序
void quickSort2(int a[], int l, int r) { if (l < r) { int i = l, j = r; int x = a[l]; while (i < j) { while (i = x) { j--; } if (i < j) { a[i++] = a[j]; } whi...
分类:其他好文   时间:2014-05-07 12:03:15    阅读次数:269
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!