码迷,mamicode.com
首页 >  
搜索关键字:线性时间排序 计数排序 基数排序 桶排序    ( 1173个结果
快速排序QuickSort
前几天实现了直接插入排序、冒泡排序和直接选择排序这三个基础排序。今天看了一下冒泡排序的改进算法,快速排序。单独记录一下,后面还有归并和基数排序等快速排序1.选择一个支点默认为数组第一个元素及array[start]作为支点,将所有大于支点元素的值放到支点后面,将所有小于支点元素的值放到支点前面,完成...
分类:编程语言   时间:2014-11-05 22:58:49    阅读次数:345
三种简单的排序算法
排序算法总是分不清,借了本数据结构来专门看了一下说一下分类,主要有五类,插入排序,交换排序,选择排序,基数排序和归并排序今天中午看了一下插入排序中的直接插入排序,交换排序的冒泡排序,选择排序中的冒泡排序1.插入排序将数组分成两个部分,一个是有序,一个是无序。将无序的每个元素插入到有序中,一共需要n ...
分类:编程语言   时间:2014-11-04 19:34:42    阅读次数:336
第八章 线性时间排序
摘要: 本章先回顾了前面介绍的合并排序、堆排序和快速排序的特点及运行运行时间。合并排序和堆排序在最坏情况下达到O(nlgn),而快速排序最坏情况下达到O(n^2),平均情况下达到O(nlgn),因此合并排序和堆排序是渐进最优的。这些排序在执行过程中各元素的次序基于输入元素间的比较,称这种算法为比较....
分类:编程语言   时间:2014-11-03 14:15:19    阅读次数:301
计数排序与位图排序
计数排序(Counting sort)是一种稳定的线性时间排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。计数排序不是比较排序,排序的速度快于任何比较排序算法。由于用来计数的数组C的长度取决于待排序数组中数据.....
分类:编程语言   时间:2014-10-28 19:35:34    阅读次数:218
大数据下-巧用位数组排序和判重及布隆过滤器的简单应用
技巧一:对无重复的数据集排序 对于给定的数据集,(2,4,1,12,9,7,6)如何对它排序? 第一种方式、使用最基本的冒泡,快排、基数排序等,最小时间复杂度 0(nlogn)。 第二种方式、使用位数组排序算法。 对于数据集排序,相信大多数都会在第一时间便能想起来,而对于方法二,就需要一定的思考了。...
分类:编程语言   时间:2014-10-28 00:52:23    阅读次数:302
桶排序
桶排序的核心思想就是分治处理数据,把数据按照大小分发到各个区间(区间内数据保证有序,数据结构可以使用链表,方便分发过来的新数据插入)。假设有N条数据是分布在一个固定的区间内(0,n),现在要对其排序,桶排序步骤如下1 把(0,n)划分成m个区间,像这样 (0,n/m),(n/m+1, 2n/m),(...
分类:编程语言   时间:2014-10-26 22:38:53    阅读次数:270
关于排序...
今天发现...比较流行的后缀数组模板里的排序居然不是“基数排序”,而是“计数排序”....难怪我理解了那么久的代码还是理解不到...原来一开始的思想就没对...想了一下,原来后缀数组模板里的确实是“基数排序”,只不过对每一位排序的实现它用的是“计数排序”,而不是我一直所想的桶排。怎么没人说说这几个排...
分类:编程语言   时间:2014-10-25 20:03:07    阅读次数:178
Java 排序算法
各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序一、冒泡排序(BubbleSort)1. 基本思想: 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。....
分类:编程语言   时间:2014-10-23 14:17:55    阅读次数:201
查找数列中第K小的元素(C语言版)
关于查找数列中第k小的元素的常见方法: 1、先排序整个数列然后取第k-1个数 2、利用选择排序 3、选择算法 4、利用计数排序的思想 5、利用堆排序思想(一) 6、利用堆排序思想(二)...
分类:编程语言   时间:2014-10-22 14:36:48    阅读次数:281
计数排序(C语言版)
先说说计数排序的思想: 计数排序假定待排序的所有元素都是介于0到K之间的整数;计数排序使用一个额外的数组countArray,其中第i个元素是待排序数组array中值等于i的元素的个数。然后根据数组countArray来将array中的元素排到正确的位置。 算法的步骤如下: 找出待排序的数组中最大和最小的元素 统计数组中每个值为i的元素出现的次数,存入数组countArray的第i项 对所有的计数累加(从countArray中的第一个元素开始,每一项和前一项相加) 反向填充目标数组:将每个元素i放在新数组...
分类:编程语言   时间:2014-10-17 01:47:03    阅读次数:229
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!