基本思想 基数排序是借助“分配”和“收集”两种操作对单逻辑关键字进行排序的一种内部排序方法。 数组下标从0-9,每个数组元素是一个链表 比如对一些三位数以内的树排序,先将个位的数值插入对应的下标的链表中,然后再放回原数组,放回的顺序和插入的顺序一致,将链表清空,再将十位的数字插入对应的下标的链表中, ...
分类:
编程语言 时间:
2019-08-15 23:11:37
阅读次数:
176
将新的数组合并到num1 思路:从最后两个数组的最后一位开始遍历 空间复杂度为O(1),时间复杂度为O(m+n) 即从不产生循环移动的那端开始 ...
分类:
编程语言 时间:
2019-08-15 18:59:42
阅读次数:
80
题目描述: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 注意: 1)空指针NULL,null是错误的; 2)空间复杂度是O(m+n),因为一共进行 m+n 次递归调用,产生了 m+n 个栈帧。 ...
分类:
其他好文 时间:
2019-08-15 12:41:56
阅读次数:
95
1、冒泡排序,不管序列是怎样,都是要比较n(n-1)/2 次的,最好、最坏、平均时间复杂度都为O(n²),需要一个临时变量用来交换数组内数据位置,所以空间复杂度为O(1)。 优化:使用一个标志位来判断是否有序,若果有序,那么循环一次就直接退出,时间复杂度为O(n)。 2、选择排序是冒泡排序的改进,同 ...
分类:
编程语言 时间:
2019-08-09 23:32:27
阅读次数:
157
一般来说,计算机算法是问题规模n的函数f(n),算法的时间复杂度也因此记做T(n)=O(f(n));常见时间复杂度有:常数阶、线性阶、平方阶、立方阶、对数阶、nlog2n阶、指数阶效率:O(1) > O(log2n)> o(n)> o(nlog2n) > o(n^2) > o(n^3) > o(2^ ...
分类:
其他好文 时间:
2019-08-08 19:36:54
阅读次数:
127
反转一个单链表。 示例: 进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 解决方案 方法一:迭代 假设存在链表 1 → 2 → 3 → Ø,我们想要把它改成 Ø ← 1 ← 2 ← 3。 在遍历列表时,将当前节点的 next 指针改为指向前一个元素。由于节点没有引用其上一个节点,因此 ...
分类:
编程语言 时间:
2019-08-08 18:56:04
阅读次数:
86
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 示例 1: 输入: 4->2->1->3输出: 1->2->3->4示例 2: 输入: -1->5->3->4->0输出: -1->0->3->4->5 ...
分类:
编程语言 时间:
2019-08-07 22:08:35
阅读次数:
91
题解参考:https://leetcode-cn.com/problems/reverse-integer/solution/zheng-shu-fan-zhuan-by-leetcode/ 复杂度分析 时间复杂度:O(log(x)),x中大约有 log10(x) 位数字。空间复杂度:O(1)。 ...
分类:
其他好文 时间:
2019-08-06 00:34:33
阅读次数:
75
转:https://www.cnblogs.com/crazylqy/p/7995395.html 在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。 而一旦踏入公司尤其是大型互联网公司就会发现,公司的 ...
分类:
其他好文 时间:
2019-08-03 10:37:52
阅读次数:
90