码迷,mamicode.com
首页 >  
搜索关键字:比较排序    ( 240个结果
线性排序之基数排序,桶排序,计数排序
基数排序 计数排序 桶排序基数排序,桶排序,计数排序是三种线性排序方法,突破了比较排序的O(nlogn)的限制。但是只适用于特定的情况。基数排序以下为维基百科的描述: 基数排序 : 将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列。 基数排序的方式可以采用L...
分类:编程语言   时间:2015-07-20 13:01:28    阅读次数:164
排序算法总结:二、插入排序
先说一下比较排序的定义吧:比较排序的定义就是除了赋值操作外, 只存在小于‘’这两种运算符是仅有的允许对输入数据进行的操作。插入排序的性质插入排序是一种比较排序将一个数组分为两部分,前面为排好序的部分,后面为未排序的部分将未排序部分的元素逐个插入到已排好序部分的正确位置上就像扑克牌按顺序排列,原先 2...
分类:编程语言   时间:2015-07-15 18:47:08    阅读次数:188
【算法】6 九种比较排序
回顾比较排序相信阅读过前面5篇博文的童鞋们已经发现了“在排序的最终结果中,各元素的次序依赖于它们之间的比较”。于是乎,这类排序算法被统称为”比较排序“。比较排序是通过一个单一且抽象的比较运算(比如“小于等于”)读取列表元素,而这个比较运算则决定了每两个元素中哪一个应该先出现在最终的排序列表中。声明:下面通过在维基百科中找到的非常完美的图示来介绍一系列比较排序。插入排序在该系列的【算法】1中我们便介绍...
分类:编程语言   时间:2015-06-06 14:56:47    阅读次数:206
Guava源码分析——Ordering
毋庸置疑,Ordering肯定实现了Comparator接口,这是Java中比较排序使用的。而其中的静态方法返回一种类型的Ordering,不同的Ordering子类实现各自的compare()方法,如下所示:public static Ordering natural() { return (.....
分类:其他好文   时间:2015-05-26 18:23:03    阅读次数:315
算法导论学习笔记——第8章 线性时间排序
任意一种比较排序算法,在最坏情况下的运行时间下限是Ω(nlgn)计数排序假设n个输入元素中的每一个都是介于0到k之间的整数,k为某个整数,当k=O(n)时,计数排序的运行时间为Θ(n) 1 //输入数组A[1..n],存放排序结果数组B[1..n],临时存储区C[0..k] 2 COUNTING-S...
分类:编程语言   时间:2015-05-24 17:18:52    阅读次数:135
计数排序
比较排序的极限是O(nlgn)而计数排序非比较排序 他的复杂度只有O(n)基本思想是: 1、统计a数组中每个数字出现的次数放在临时数组c中,c的大小为a中最大的数 2、在第一步统计的基础上遍历一遍统计小于等于i的数出现的次数即c[i]+=c[i-1] 3、通过数组c确定a[i]的位置,放在结果...
分类:编程语言   时间:2015-05-20 20:17:57    阅读次数:127
计数排序
在之前写过的插入排序,归并排序,堆排序,快排都是比较排序,它们个个元素之间的次序依赖于他们之间的比。 计数排序不是一个比较排序的算法,它的所有代码完全没有在输入元素之间的比较。计数排序的基本思想是:对没一个输入元素x,确定小于x的元素个数。用这个信息,就可以把x放到它输出数组上的位置。 #include #include using namespace std; void countsort(...
分类:编程语言   时间:2015-05-19 22:50:20    阅读次数:166
Strategy pattern策略模式
在Java的集合框架中,经常需要通过构造方法传入一个比较器Comparator,或者创建比较器传入Collections的静态方法中作为方法参数,进行比较排序等,使用的是策略模式。一、策略模式的定义 定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。二、策....
分类:其他好文   时间:2015-05-14 20:05:19    阅读次数:110
java 堆排序的实现
堆就是一个完全二叉树,堆要求是指 该节点大于它的两个子节点。而两个字节点大小不一定。堆排序的最坏时间复杂度为nlog(n),平均也为nlog(n),占用空间为o(1),是一种比较排序算法。堆排序也可以用于找最大的k个数。时间复杂度为klog(n),因为建堆后,每次循环实际上都生成一个最大数。下面见代...
分类:编程语言   时间:2015-04-28 11:16:36    阅读次数:161
C#冒泡排序
冒泡排序法:1:简介:冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,由此而得名。2:基本原理:冒泡排序(BubbleSort)的基本概念是:依次比较...
分类:编程语言   时间:2015-04-28 09:53:55    阅读次数:203
240条   上一页 1 ... 17 18 19 20 21 ... 24 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!