随笔分类 -  DataStructure and Algorithm

摘要:#include <iostream> #include <vector> using namespace std; void merge_sort(vector<int>& vec,int left, int right); int main(){ vector<int> input = {}; 阅读全文
posted @ 2021-04-14 12:12 zeroPatrick 阅读(28) 评论(0) 推荐(0)
摘要:1.问题描述:# 哲学家进餐问题描述有五个哲学家,他们的生活方式是交替地进行思考和进餐,哲学家们共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五支筷子,平时哲学家进行思考,饥饿时便试图取其左、右最靠近他的筷子,只有在他拿到两支筷子时才能进餐,该哲学家进餐完毕后,放下左右两只筷子又继续思考 阅读全文
posted @ 2021-02-09 20:10 zeroPatrick 阅读(236) 评论(0) 推荐(0)
摘要:void quickSort(vector<int>& nums, int start, int end){ if(start >= end) return; int left = start, right = end; int pivot = nums[left]; while(left < ri 阅读全文
posted @ 2021-01-12 12:50 zeroPatrick 阅读(60) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2021-01-04 09:54 zeroPatrick 阅读(49) 评论(0) 推荐(0)
摘要:时间复杂度O(n*logn):每次输出堆顶元素,输出n-1次,每次输出完之后对堆进行调整,每次调整的时间复杂度是O(logn),即二叉树的高度h。 阅读全文
posted @ 2021-01-04 08:57 zeroPatrick 阅读(1188) 评论(0) 推荐(0)
摘要:直接定址法: 直接取关键字的某个线性函数值为散列地址。Hash(key) = a*key + b (其中a,b为常数) 方法简单,不会产生冲突,若关键字分布不连续,则会浪费空间。 解决哈希冲突的方法:开放定址法、拉链法 开放定址法中不能随便删除某个元素,因为会导致对相同H(key)的后续检索,当几个 阅读全文
posted @ 2020-12-29 13:55 zeroPatrick 阅读(194) 评论(0) 推荐(0)
摘要:转载自:https://blog.csdn.net/qq_36610462/article/details/83277524 查找、删除、插入时间复杂度: 1.节点是红色或黑色。 2.根节点是黑色。 3.每个叶子节点都是黑色的空节点(NIL节点)。 4 每个红色节点的两个子节点都是黑色。(从每个叶子 阅读全文
posted @ 2020-12-28 16:24 zeroPatrick 阅读(69) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-12-26 14:24 zeroPatrick 阅读(408) 评论(0) 推荐(0)
摘要:二叉树广度优先算法: public void LevelOrder() { Queue<Node> queue = new Queue<Node>(); queue.Enqueue(_head); while (queue.Count>0) { Node node = (Node)queue.Deq 阅读全文
posted @ 2020-12-17 19:08 zeroPatrick 阅读(112) 评论(0) 推荐(0)