1 JDK排序

通过JDK的Collections.sort和Comparator的定义

2 快速排序(分而治之)

(1)时间复杂度 NlogN

(2)算法实现

 

3 归并排序

1024555-20161218163120151-452283750

4 字典序

实例1  给定整数 n k,找到 1 n 中字典序第 k 小的数字

最优解法

参考:https://leetcode-cn.com/problems/k-th-smallest-in-lexicographical-order

注意:1 ≤ k ≤ n ≤ 109

代码如下,主要包含两步:

  • 计算当前节点下的树上有多少个节点
  • 寻找第K个节点。如果在当前节点树上面,则移动步长为10(prefix = prefix * 10);否则移动步长为1 prefix++)。

最普通解法-报超出内存限制

通过字符串的排序,然后选择第k个数

分类&标签