排序

2018-09-19  本文已影响16人  隔壁丨王大爷

归并排序,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数组实现循环队列的两种方法 - CSDN博客

二叉树深度

求二叉树的深度和宽度[Java] - 旭东的博客 - 博客园

层序遍历二叉树

二叉树的层序遍历算法实现 - hapjin - 博客园

树的中序遍历,除了递归和栈还有什么实现方式

二叉树的三种遍历方式:递归、栈、循环 - CSDN博客

二叉搜索树转换成一个排好序的双向链表

笔试面试算法经典--二叉搜索树转有序的双向链表(Java) - CSDN博客

判断平衡二叉树

判断二叉树是否是平衡二叉树 及二叉树各种操作汇总 - hapjin - 博客园

给定一个2叉树,打印每一层最右边的结点

C++编程,输出二叉树每层最右端节点的数值 - CSDN博客

一棵普通树(非二叉搜索树),找出一条路径和最大

找一个二叉树的最大路径和 - CSDN博客

最长公共子序列

常考的经典算法--最长公共子序列(LCS)与最长公共子串(DP) - CSDN博客

反转链表

链表面试题(一):反转链表的算法实现 - csbdong - 博客园

判断一个数是不是丑数

判断一个数是否是丑数 - CSDN博客

蓄水池抽样算法

蓄水池抽样——《编程珠玑》读书笔记 - CSDN博客

寻找一个字符串中第一个只出现一次的字符

第一个只出现一次的字符_牛客网

给定一个数组,里面只有一个数出现了一次,其他都出现了两次。怎么得到这个出现了一次的数?

给定一个数组,里面只有一个数出现了一次,其他都出现了两次,怎么得到这个出现了一次的数? - CSDN博客

海量数据topk问题

面试经典的海量数据处理(TOPK)问题—转载+个人见解! - CSDN博客

上一篇下一篇

猜你喜欢

热点阅读