Chinaunix首页 | 论坛 | 博客
  • 博客访问: 271441
  • 博文数量: 84
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 927
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-06 23:00
个人简介

growing

文章分类

全部博文(84)

文章存档

2017年(6)

2016年(61)

2015年(17)

我的朋友

发布时间:2016-04-12 19:46:57

问题:A公司的支付软件某宝和T公司某信红包大乱战。春节后高峰以后,公司Leader要求后台的攻城狮对后台的海量数据进行分析。先要求分析出各地区发红包金额最多的前100用户。现在知道人数最多的s地区大约有1000w用户。要求写一个算法实现。问题分析:我们知道,对1000W个数据很难具体用一个排序来全部排出来所有元素,然后.........【阅读全文】

阅读(1171) | 评论(0) | 转发(0)

发布时间:2016-04-10 14:25:44

1.计数排序思路:相当于开个哈西表,表里存的是数字个数,数字做相对下标,以空间换时间。特点:适合排范围集中的正数序列。时间复杂度:O(n)空间复杂度:O(1)void CountSort(int *a,size_t size) {    assert(a);    // 确定.........【阅读全文】

阅读(1166) | 评论(0) | 转发(0)

发布时间:2016-04-08 12:28:46

1.归并排序void MergrSection(int *a,int *tmp,int begin1,int end1,int begin2,int end2){    assert(a&&tmp);    int index = begin1;    while(begin1 <= end1 && begin2 <= end2) &n.........【阅读全文】

阅读(1743) | 评论(0) | 转发(0)

发布时间:2016-04-08 11:45:54

1.传统方法思路:任意找一个key,begin和end从两头找,begin找大(相对于key),end找小,找到了就交换。完毕之后将key放在中间为boundary,再用两边的区间递归上面的做法,直到元素有序。int Partition(int *a,int left,int right){    assert(a); &nb.........【阅读全文】

阅读(2174) | 评论(0) | 转发(0)

发布时间:2016-04-05 11:53:15

1.插入排序原理:从第二个元素开始拿出元素,向其前面的区间里插。知道插到最后一个元素完了即有序。特点:序列接近有序时效率较高,适合小于千级数量的排序。时间复杂度:O(N^2) 最好的时候接近O(N),即每次插的位置都是其原位,不用挪动。空间复杂度:O(1)void InsertSort(int *a,size_t size).........【阅读全文】

阅读(997) | 评论(0) | 转发(0)
给主人留下些什么吧!~~

enenshiwo2016-04-12 10:56

回复  |  举报
留言热议
请登录后留言。

登录 注册