排序
归并排序,N个有序数组的归并排序
无序数组查找中位数
1.1 将前(n+1)/2个元素调整为一个最小堆;
1.2 对后续每一个元素和堆顶比较,如果小于等于堆顶,丢弃之,去下一个元素。如果大于堆顶,用该元素取代堆顶,调整堆,去下一个元素重复1.2步
1.3 当遍历完所有元素之后,堆顶为中位数
查找N个元素中的第K个小的元素(来自编程珠玑)
编程珠玑给出了一个时间复杂度O(N),的解决方案。该方案改编自快速排序。
经过快排的一次划分,
1)如果左半部份的长度>K-1,那么这个元素就肯定在左半部份了
2)如果左半部份的长度==K-1,那么当前划分元素就是结果了。
3)如果左半部份的长度<k-1,那么这个元素就肯定在右半部份了
并且,该方法可以用尾递归实现。效率更高。
现在有10亿个纯数字,但是只有2MB可用内存,1gb储存,你怎么排序排一下
常见的排序算法时间复杂度
常用的排序算法的时间复杂度和空间复杂度 - Angelye - 博客园
利用数组,实现一个循环队列类
二叉树深度
求二叉树的深度和宽度[Java] - 旭东的博客 - 博客园
层序遍历二叉树
树的中序遍历,除了递归和栈还有什么实现方式
二叉搜索树转换成一个排好序的双向链表
笔试面试算法经典--二叉搜索树转有序的双向链表(Java) - CSDN博客
判断平衡二叉树
判断二叉树是否是平衡二叉树 及二叉树各种操作汇总 - hapjin - 博客园
给定一个2叉树,打印每一层最右边的结点
C++编程,输出二叉树每层最右端节点的数值 - CSDN博客
一棵普通树(非二叉搜索树),找出一条路径和最大
最长公共子序列
常考的经典算法--最长公共子序列(LCS)与最长公共子串(DP) - CSDN博客
反转链表
链表面试题(一):反转链表的算法实现 - csbdong - 博客园
判断一个数是不是丑数
蓄水池抽样算法
寻找一个字符串中第一个只出现一次的字符
给定一个数组,里面只有一个数出现了一次,其他都出现了两次。怎么得到这个出现了一次的数?
给定一个数组,里面只有一个数出现了一次,其他都出现了两次,怎么得到这个出现了一次的数? - CSDN博客
海量数据topk问题