计数排序的基本思想是:统计一个数序列中小于某个元素a的个数为n,则直接把该元素a放到第n+1个位置上。当然当过有几个元素相同时要做适当的调整,因为不能把所有的元素放到同一个位置上。计数排序假设输入的元素都是0到k之间的整数。// 8-2.计数排序.cpp : 定义控制台应用程序的入口点。 // #i...
分类:
编程语言 时间:
2015-07-17 00:05:27
阅读次数:
182
计数排序 前提:待排序表中的所有待排序关键字必须互不相同; 思想:计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键码比该记录的关键码小,假设针对某一个记录,统计出的计数值为c,则该记录在新的有序表中的存放位置即为c。 性能:空间复杂度:o(n);时间复杂度:o(n...
分类:
编程语言 时间:
2015-07-16 13:23:30
阅读次数:
161
E. A Simple TaskProblem's Link: http://codeforces.com/problemset/problem/558/EMean:给定一个字符串,有q次操作,每次操作将(l,r)内的字符升序或降序排列,输出q次操作后的字符串。analyse:基本思想是计数排序。所...
分类:
编程语言 时间:
2015-07-16 00:32:51
阅读次数:
327
数据结构中常见的内部排序算法: 插入排序:直接插入排序、折半插入排序、希尔排序 交换排序:冒泡排序、快速排序 选择排序:简单选择排序、堆排序 归并排序、基数排序、计数排序直接插入排序: 思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。 性...
分类:
编程语言 时间:
2015-07-14 13:10:31
阅读次数:
211
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
上一篇提到了计数排序,它在输入序列元素的取值范围较小时,表现不俗。但是,现实生活中不总是满足这个条件,比如最大整形数据可以达到231-1,这样就存在2个问题:1)因为m的值很大,不再满足m=O(n),计数排序的时间复杂也就不再是线性的;2)当m很大时,为计数数组申请的内存空间会很大;为解决这两个问题...
分类:
编程语言 时间:
2015-07-12 00:09:55
阅读次数:
336
最大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
题意:从小到大排序白书上说输入有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
为什么引入协处理器?
HBase作为列数据库最经常被人诟病的特性包括:无法轻易建立“二级索引”,难以执行求和、计数、排序等操作。
比如,在旧版本(
虽然HBase在数据存储层中集成了MapReduce,能够有效用于数据表的分布式计算。然而在很多情况下,做一些简单的相加或者聚合计算的时候,如果直接将计算过程放置在server端,能够减少通讯开销,从而获得很好的性能提升。于是, HBase在0....
分类:
其他好文 时间:
2015-07-03 20:44:49
阅读次数:
219
问题描述
输入一个整型数组,每个元素在0~2之间,其中0,1,2分别代表红、白、蓝。现要求对数组进行排序,相同颜色的在一起,而且按红白蓝顺序先后排列。要求时间复杂度为O(n)。
问题分析
最容易想到的是排序,比如快排,归并,堆排等,但它们的时间复杂度为O(nlogn),与题意不符。
第二种想到的是计数排序,扫描一遍过去,分别记录0,1,2的个数,然后再对数组进行赋值。时间复杂度为O(...
分类:
编程语言 时间:
2015-07-03 14:04:40
阅读次数:
225