码迷,mamicode.com
首页 >  
搜索关键字:线性时间排序 计数排序 基数排序 桶排序    ( 1173个结果
Java实现各种内部排序算法
数据结构中常见的内部排序算法: 插入排序:直接插入排序、折半插入排序、希尔排序 交换排序:冒泡排序、快速排序 选择排序:简单选择排序、堆排序 归并排序、基数排序、计数排序直接插入排序: 思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。 性...
分类:编程语言   时间:2015-07-14 13:10:31    阅读次数:211
Sort Colors
https://leetcode.com/problems/sort-colors/计数排序问题 1 class Solution { 2 public: 3 void sortColors(vector& nums) { 4 int rates[3]={0}; 5 ...
分类:其他好文   时间:2015-07-14 11:16:22    阅读次数:127
基数排序
1.算法介绍 按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位。有时候有些属性是有优先级顺序的,先按低优先级排序,再按高优先级排序。最后的次序就是高优先级高的在前,高优先级相同的低优先级高的在前。2.算法原理 两种多关键码排序方法: 多关键码排序按照从最主位关键码到最...
分类:编程语言   时间:2015-07-12 20:20:44    阅读次数:127
排序算法--桶排序
桶排序的基本思想现在有一个数组A,这个数组有size个元素,元素的范围为0~MAX。要求对这size个数据进行排序。建立一个大小为MAX+1的数组B,每一个元素都为0。从头开始遍历A,当遍历到A[i]的时候,令B[A[i]]的值加1;当把A整个扫面结束之后,输出B就得到了最后的排序结果。一个桶排序的...
分类:编程语言   时间:2015-07-12 12:41:41    阅读次数:157
排序算法七:基数排序(Radix sort)
上一篇提到了计数排序,它在输入序列元素的取值范围较小时,表现不俗。但是,现实生活中不总是满足这个条件,比如最大整形数据可以达到231-1,这样就存在2个问题:1)因为m的值很大,不再满足m=O(n),计数排序的时间复杂也就不再是线性的;2)当m很大时,为计数数组申请的内存空间会很大;为解决这两个问题...
分类:编程语言   时间:2015-07-12 00:09:55    阅读次数:336
topK
最大K个数: 当数据量小时:快排和堆排O(Nlog(N));部分排序(选择or交换)O(N*K) 快排加分治O(N*log(K));二分查找当数据是整数且重复数比较多时:计数排序;若不是整数,则分区间计数。当数据量大时:1)小根堆:O(N*KlogK)2)分治法:hash成M份数据,取每份数据的前K...
分类:其他好文   时间:2015-07-11 22:46:10    阅读次数:194
啊哈算法-----快速排序
上一节的冒泡排序可以说是我们学习第一个真正的排序算法,并且解决了桶排序浪费空间的问题,但在算法的执行效率上却牺牲了很多,它的时间复杂度达到了O(N2)。假如我们的计算机每秒钟可以运行10亿次,那么对1亿个数进行排序,桶排序则只需要0.1秒,而冒泡排序则需要1千万秒,达到115天之久,是不是很吓人。那...
分类:编程语言   时间:2015-07-11 21:19:35    阅读次数:137
排序之表排序、基数排序及所有排序算法比较
本学习笔记部分内容来自浙江大学网易云课堂,谢谢! 1、表排序 定义一个指针数组做为表。排序的时候,数组位置上的数值不变,改变的是指针的指向。 如该图,初始数值:f d c a g b h e   开始时,比较f>d,则指针0指向d,指针1指向f。之后比较f>c,d>c,则指针0指向c,指针1指向d,指针2指向f。以此类推,最终指针0指向a的位置(即table[0]=3,A[3]那个位...
分类:编程语言   时间:2015-07-10 18:59:48    阅读次数:189
UVa 11462 Age Sort
题意:从小到大排序白书上说输入有25MB,但是内存限制只有2MB,用sort去写了一下,居然过了~~~~~学了计数排序---- 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8...
分类:其他好文   时间:2015-07-07 14:40:29    阅读次数:108
排序算法之(6)——基数排序
【基数排序的思想】首先使用基数r=10进行分解,将每个整数分成d位(d是待排元素中的最大位数),每位的取值范围是0~9;因为每一位有10种可能的情况,所以建立10个链表,即lists[0]~list[9],分别代表相应位为0、1、2、3、4、5、6、7、8、9。...
分类:编程语言   时间:2015-07-04 11:18:31    阅读次数:174
1173条   上一页 1 ... 85 86 87 88 89 ... 118 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!