https://leetcode.com/problems/two-sum/
水题一发吧,不过退役以来很少做题了,真是退步太厉害,没考虑全
题意:给一个数组,也一个target,问哪两个数加起来可以得到target
答案:桶排orHash
1、注意,桶排序,而且桶的深度不一定是1,所以hash[i]表示i个数而不是是不是存在
2、因为涉及下标,所以一定小心数组的数可以是分数,我的做法是,...
分类:
其他好文 时间:
2015-05-01 01:50:43
阅读次数:
131
线性时间排序
1.计数排序
2.基数排序
3.桶排序...
分类:
编程语言 时间:
2015-04-14 19:42:38
阅读次数:
249
桶排序桶排序从 1956 年就开始被使用,该算法的基本思想是由E.J.Issac 和 R.C.Singleton 提出来的。这个算法就好比有 11 个桶,编号从 0~10。每出现一个数,就在对应编号的桶中放一个小旗子,最后只要数数每个桶中有几个小旗子就 OK 了。例如 2 号桶中有 1 个小旗子,表...
分类:
编程语言 时间:
2015-04-11 22:25:38
阅读次数:
281
基数排序又称桶排序,对排序数组的每一位进行比较后排序,依次对每一位排序完成,最终就可以得到整个数组的排序。...
分类:
编程语言 时间:
2015-04-11 09:00:55
阅读次数:
127
【问题】:如果有一组数据a[]={0,9,2,3,4,5,3,5,2,8},对它进行从小到大的顺序排列#include void BucketSort(){ int i, j; int a[] = {0,9,2,3,4,5,3,5,2,8}; int b[10] = {0}; int iaSize....
分类:
编程语言 时间:
2015-04-10 13:33:55
阅读次数:
115
一:计数排序
(1)当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量时间和内存。例如:计数排序是用来排序0到100之间的数字的最好的算法,但是它不适合按字母顺序排...
分类:
编程语言 时间:
2015-03-29 16:39:57
阅读次数:
212
桶排序算法主要使用在数据分布均匀的情况,这里假设输入数据的关键字全部分布在0~100之间,因此我们这里划分为十个同[0..9],存储排序,B[i][]中存放x/10==i的元素,再对*B[i]进行插入排序,复制到数组A中结束。插入排序代码(前面以给出):int InsertSort(int *a,int n){
//对长度为n的数组,进行插入排序,下标0~n-1
int i,j,ke...
分类:
编程语言 时间:
2015-03-20 23:48:25
阅读次数:
195
算法说明桶排序的逻辑其实特别好理解,它是一种纯粹的分而治之的排序方法。举个例子简单说一下大家就知道精髓了。假如对11,4,2,13,22,24,20 进行排序。那么,我们将4和2放在一起,将11,13放在一起,将22,24,20放在一起。 然后将这三部分分别排序(可以根据实现情况任意选择排序方式,我...
分类:
编程语言 时间:
2015-03-20 08:07:50
阅读次数:
168
一.什么是基数排序我们以前接触的很多算法,都是通过比较的得出的,但基数排序是另一种思路。原理类似桶排序,这里总是需要10个桶,多次使用首先以个位数的值进行装桶,即个位数为1则放入1号桶,为9则放入9号桶,暂时忽视十位数例如待排序数组[62,14,59,88,16]简单点五个数字,分配10个桶,桶编号...
分类:
编程语言 时间:
2015-03-15 16:30:09
阅读次数:
158
前面我们学习的几种排序算法都是基于比较的,对于任何输入数据他们都是适用的,其最坏的时间复杂度不会低于nlgn;
但对于一些比较特殊的输入数据,我们可以不采取比较的方法而是采用其它的方法对其进行排序,以达到线性的时间复杂度。下面就来介绍三种这样的算法:计数排序,基数排序,桶排序(因为这几种算法不常见,我只实现了计数排序,其它两种排序用伪代码表示)。一.计数排序
算法思想:给定n个位于0–k之...
分类:
编程语言 时间:
2015-03-13 18:46:59
阅读次数:
170