08 2021 档案

摘要:归并排序 整体是递归,左边排好序+右边排好序+merge让整体有序 归并排序复杂度 T(N) = 2*T(N/2) + O(N^1) 根据master可知时间复杂度为O(N*logN) merge过程需要辅助数组,所以额外空间复杂度为O(N) 归并排序的实质是把比较行为变成了有序信息并传递,比O(N 阅读全文
posted @ 2021-08-27 20:34 习惯1991 阅读(43) 评论(0) 推荐(0)
摘要:栈和队列 栈:数据先进后出,犹如弹匣 队列:数据先进先出,好似排队 双向链表实现 栈和队列 static class DoubleNode<T>{ T value; DoubleNode last; DoubleNode next; public DoubleNode(T value) { this 阅读全文
posted @ 2021-08-26 10:45 习惯1991 阅读(236) 评论(0) 推荐(0)
摘要:单向链表 单向链表节点结构 public class Node { public int value; public Node next;• public Node(int data) { value = data; }}​ 双向链表 双向链表节点结构public class DoubleNode 阅读全文
posted @ 2021-08-26 10:15 习惯1991 阅读(53) 评论(0) 推荐(0)
摘要:异或运算:相同为0,不同为1同或运算:相同以1,不同为0异或运算就记成无进位相加! 1)0^N == N N^N == 02)异或运算满足交换律和结合率 题目一 如何不用额外变量交换两个数 /** * a 与 b 交换数据 不使用中间变量 */ public static void m1(){ in 阅读全文
posted @ 2021-08-25 17:06 习惯1991 阅读(386) 评论(0) 推荐(0)
摘要:评估算法优劣的核心指标是什么? 时间复杂度(流程决定) 额外空间复杂度(流程决定) 常数项时间(实现细节决定) 什么是时间复杂度?时间复杂度怎么估算? •常数时间的操作 •确定算法流程的总操作数量与样本数量之间的表达式关系 •只看表达式最高阶项的部分 常见的常数时间的操作 Misplaced & 总 阅读全文
posted @ 2021-08-25 16:42 习惯1991 阅读(374) 评论(0) 推荐(0)