常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 用一张图概括: 选择排序 选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。通俗来说 ...
分类:
编程语言 时间:
2017-05-15 19:46:59
阅读次数:
218
海量日志数据,提取出某日访问百度次数最多的那个IP。 既然是海量数据处理,那么可想而知,给我们的数据那就一定是海量的。 针对这个数据的海量,我们如何着手呢?对的,无非就是分而治之/hash映射 + hash统计 + 堆/快速/归并排序,说白了,就是先映射,而后统计,最后排序: 分而治之/hash映射 ...
分类:
编程语言 时间:
2017-05-15 18:23:01
阅读次数:
197
1、排序的基本概念与分类
排序是我们生活中经常会面对的问题。同学们做操时会按照从矮到高排列;老师查看上课出勤情况时,会按学生学号顺序点名;高考录取时,会按成绩总分降序依次录取等。那排序的严格定义...
分类:
编程语言 时间:
2017-05-14 18:03:00
阅读次数:
280
1/50 这里都没有发题目,随手解析,大部分是供自己思考反思作用,思路、题目等有不少来自各种资料。大部分有附代码,需要题目自行搜索引擎。 我又开坑啦,考虑到还是以文化课为重,这次五十题给了很多时间,希望能及时刷完… 目前已涉及的算法有:堆。 1.建堆+堆排序 1 #include<cstdio> 2 ...
分类:
其他好文 时间:
2017-05-13 12:32:16
阅读次数:
127
题目: Sort a linked list in O(n log n) time using constant space complexity. Example Given 1->3->2->null, sort it to 1->2->3->null. Given 1->3->2->null, ...
分类:
其他好文 时间:
2017-05-13 11:10:13
阅读次数:
155
堆排序利用的完全二叉树这种数据结构所设计的一种算法,不过也是选择排序的一种。 堆实质上是满足如下性质的完全二叉树:k[i]<=k[2*i]&&k[i]<=k[2*i+1]或者k[i]>=k[2*i]&&k[i]>=k[2*i+1], 树中任一非叶子结点的关键字均不大于(或不小于)其左右孩子(若存在) ...
分类:
编程语言 时间:
2017-05-12 23:58:05
阅读次数:
410
常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:归并排序(英语:Mergesort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为O(nlogn)。1945年由约翰·冯·诺伊曼首次提出。该算法是..
分类:
编程语言 时间:
2017-05-12 22:21:10
阅读次数:
206
常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:归并排序(英语:Mergesort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为O(nlogn)。1945年由约翰·冯·诺伊曼首次提出。该算法是..
分类:
编程语言 时间:
2017-05-12 22:12:11
阅读次数:
269
春蚕到死丝方尽,蜡炬成灰泪始干 ——无题 这里介绍两个比较难的算法: 1、堆排序 2、分治并归排序 先说堆。 这里请大家先自行了解完全二叉树的数据结构。 堆是完全二叉树。大顶堆是在堆中,任意双亲值都大于(或等于)其孩子值,就称其为大顶堆。 堆排序的步骤: 1、把数组想象成一个堆。数组的index+1 ...
分类:
编程语言 时间:
2017-05-12 20:21:21
阅读次数:
229