5个数要排序,5,3,5,2,8
首先我们需要申请一个大小为11的数组int a[11]。现在你已经有了11个变量,编号从a[0]~a[10]。刚开始的时候,我们将a[0]~a[10]都初始化为0,表示这些分数还都没有人得过。
下面开始处理每一个人的分数,第一个人的分数是5分,我们就将相对应的a[5]的值在原来的基础增加1,即将a[5]的值从0改为1,表示5分出现过了一次。依次最后结果...
分类:
编程语言 时间:
2015-01-27 16:25:11
阅读次数:
169
Sort a linked list inO(nlogn) time using constant space complexity.常见排序方法有很多,插入排序,选择排序,堆排序,快速排序,冒泡排序,归并排序,桶排序等等。。它们的时间复杂度不尽相同,而这里题目限定了时间必须为O(nlgn),符合要...
分类:
编程语言 时间:
2015-01-26 13:23:44
阅读次数:
194
一,桶排序以下代码转自:桶排序[cpp]view plaincopy#include#includeusingnamespacestd;structNode{doublevalue;Node*next;};//桶排序主程序voidbucketSort(double*arr,intlength){No...
分类:
编程语言 时间:
2015-01-20 21:51:25
阅读次数:
161
想了一晚上没想明白,上网搜了别人的答案。。。研究了好几个晚上才觉得有点明悟了。。。 下面是详细思考的过程:(参考答案) class Solution {
public: // 用桶排序 // 算出相邻两个桶之间的最大差值 // 如果是平均分布,则桶的数目和元素的数目相同时,其排序的时间复杂度是0(n...
分类:
其他好文 时间:
2014-12-22 22:45:04
阅读次数:
178
经典排序算法 - 桶排序Bucket sort
补充说明三点
1,桶排序是稳定的
2,桶排序是常见排序里最快的一种,比快排还要快…大多数情况下
3,桶排序非常快,但是同时也非常耗空间,基本上是最耗空间的一种排序算法
我自己的理解哈,可能与网上说的有一些出入,大体都是同样的原理
无序数组有个要求,就是成员隶属于固定(有限的)的区间,如范围为[0-9](考试分数为1-100等)
...
分类:
编程语言 时间:
2014-12-16 13:36:50
阅读次数:
260
经典排序算法 - 鸽巢排序Pigeonhole sort
原理类似桶排序,同样需要一个很大的鸽巢[桶排序里管这个叫桶,名字无所谓了]
鸽巢其实就是数组啦,数组的索引位置就表示值,该索引位置的值表示出现次数,如果全部为1次或0次那就是桶排序
例如
var pigeonHole = new int[100];
pigeonHole[0]的值表示0的出现次数...
pigeonHole[1]...
分类:
编程语言 时间:
2014-12-16 13:36:29
阅读次数:
188
经典排序算法 - 基数排序Radix sort
原理类似桶排序,这里总是需要10个桶,多次使用
首先以个位数的值进行装桶,即个位数为1则放入1号桶,为9则放入9号桶,暂时忽视十位数
例如
待排序数组[62,14,59,88,16]简单点五个数字
分配10个桶,桶编号为0-9,以个位数数字为桶编号依次入桶,变成下边这样
| 0 | 0 | 62 | 0 | 14 | 0 ...
分类:
编程语言 时间:
2014-12-16 13:35:28
阅读次数:
187
经典排序算法 - Proxmap Sort
这个排序是桶排序和基数排序的改进,理解了前两者,这个排序很容易理解
先回忆下桶排序是怎么回事,它与桶的区别在于入桶规则,桶排序里是1入1号桶,2入2号桶
这个排序把数字分区了,然后给出一个所谓的键,例如它规定0-9都入0号桶
10-19都入1号桶,这样桶覆盖的范围将增大10倍,这在某种情况下是很有用的
有了桶排的基础后,再看下边两张图就什么都明...
分类:
编程语言 时间:
2014-12-16 13:32:39
阅读次数:
157
1、题目
Given an unsorted array, find the maximum difference between the successive elements in its sorted form.
Try to solve it in linear time/space.
Return 0 if the array contains less than ...
分类:
编程语言 时间:
2014-12-15 09:00:47
阅读次数:
222