【题目】:给定数组arr,arr中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币仅可以使用一张,再给定一个整数aim代表要找的钱数,求组成aim的最少货币数。 【代码1】:时间与额外空间复杂度O(N*aim) 【代码2】:时间复杂度O(N*aim),额外空间复杂度O(aim) 【 ...
分类:
编程语言 时间:
2019-03-27 10:58:09
阅读次数:
186
三、堆排序(Heapsort) 优先队列可以用于O(N log N) 存储空间增加一倍 排序类别 排序方法 时间复杂度 时间复 杂度 空间复杂度 稳定性 复杂性 平均情况 最坏情况 最好情况 选择排序 堆排序 O(nlog2n) O(nlog2n) O(nlog2n) O(1) 不稳定 较复杂 堆排 ...
分类:
编程语言 时间:
2019-03-25 10:31:01
阅读次数:
177
【题目】 给定两个有序数组arr1和arr2,已知两个数组的长度都为N,求两个数组中所有数的上中位数。要求时间复杂度O(logN),空间复杂度O(1) 【举例】 例如 arr1 = [1, 2,3,4],arr2 = [3,4,5,6]。 总共8个数,则中位数就是第 4 小的数,为 3. 例如 ar ...
分类:
编程语言 时间:
2019-03-20 01:23:01
阅读次数:
188
冒泡排序: 1 //冒泡排序 2 //时间复杂度为O(N^2),空间复杂度为O(N) 3 public class BubbleSort { 4 public static void bubbleSort(int[] arr) { 5 if (arr.length == 0 || arr.lengt ...
分类:
编程语言 时间:
2019-03-20 01:19:34
阅读次数:
190
Given a singly linked list, determine if it is a palindrome. Example 1: Example 2: 题目要求:以 O(1) 的空间复杂度来求解。 切成两半,把后半段反转,然后比较两半是否相等。 时间复杂度:o(n) 空间复杂度:o(1 ...
分类:
其他好文 时间:
2019-03-19 23:27:42
阅读次数:
262
为了方便记忆,借用马士兵的词儿: 选炮插, 快归堆希统计姬, n 方 n老 n一三, 对 n 加 k n 乘 k, 不稳稳稳不稳稳, 不稳不稳稳稳稳。 ...
分类:
编程语言 时间:
2019-03-18 23:48:25
阅读次数:
210
小结:学习了有关线性表的知识,线性表主要有两种存储结构,链式存储结构和顺序存储结构,两种结构分别在c语言上有不同的编写方式、时间复杂度和空间复杂度,适合需要不同操作类型的数据,如插入删除和顺序添加等 不足之处:缺少实际操作,编程能力还是较差,对于书本上的知识停留在理论层面。 下阶段目标:把这学期学的 ...
分类:
其他好文 时间:
2019-03-18 01:35:06
阅读次数:
175
1什么是复杂度分析? 分别用时间复杂度(执行的快慢)和空间复杂度(内存的消耗 )两个概念来描述性能问题,二者统称为复杂度. 复杂度就是用来分析算法执行效率与数据规模之间增长关系。 2.为什么要进行复杂度分析? 1.和性能测试相比,复杂度分析有不依赖执行环境、成本低、效率高、易操作、指导性强的特点。2 ...
分类:
其他好文 时间:
2019-03-18 01:19:50
阅读次数:
197
python之算法 这个合格程序员还是需要熟练掌握一些算法的,今天主要介绍一些排序算法 递归是算法中一个比较核心的概念,有三个特点, 1 调用自身 2 具有结束条件 3 代码规模逐渐减少 1 调用自身 2 具有结束条件 3 代码规模逐渐减少 以下四个函数只有两个为递归 这里需要注意一些 fun3和f ...
分类:
编程语言 时间:
2019-03-17 10:53:03
阅读次数:
191
数据结构第二章的学习结束了,了解了顺序表,单链表的建立,插入,删除,查找的算法,以及对它们时间复杂度,空间复杂度的分析。学会区分头指针,头结点和首元结点。 前插法,后插法创建单链表,相比之下,我觉得后插法比较好理解。双向链表就是那个表示被处理结点的前驱的后继(p->prior->next),结点的后 ...
分类:
其他好文 时间:
2019-03-17 10:37:40
阅读次数:
157