![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法笔记-左程云
文章平均质量分 75
老$¥
这个作者很懒,什么都没留下…
展开
-
左程云——链表
hash与有序表 unordered_set用法 unordered_map用法(和map用法一样,不过map有序,这个无序)——算法笔记6.4 有序表就是 Set和 Map 哈希表里面不管放多少条记录,时间复杂爱都是常数级别。 链表 反转链表 注意:链表的调整可能会存在换头的操作,那就带返回值,不换头可以定义成void类型。 这道题其实类似于下图,外排序,用两个指针指着两个链表,谁小谁向右移动,相等时将value放入新数组,然后一起移动。有一个越界了就停。 笔试:直接放到栈里就行 栈先进后原创 2021-07-31 16:00:15 · 329 阅读 · 0 评论 -
左程云——堆排序和桶排序,排序算法总结
堆结构非常重要 完全二叉树:或者是满的,在不满的最后一层也是从左往右依次变满的。 堆逻辑上就是完全二叉树 把数组必须从零出发的连续一段可以对应成完全二叉树 堆分为大根堆和小根堆 大根堆就是要求完全二叉树的每一颗子树最大值就是头结点的值 小根堆就是要求完全二叉树的每一颗子树最小值就是头结点的值 heapsize就是堆大小 heapify(堆化,非常重要的方法,从一个位置出发往下动保证堆结构): void heapify(int* arr, int index, int heapsize) { //in原创 2021-07-30 20:57:29 · 1012 阅读 · 1 评论 -
左程云——归并排序和快速排序
递归 求中点位置,一般来说mid = (L+R)*0.5,这样写有一些问题 如果数组长度比较大,L+R可能会溢出,这样算出来的mid是不对的。 所以可以这么写 mid = L + (R-L)*0.5 //下面为右移一位(等同于除2),等同于上面 mid = L + (R-L)》》1 如下图就是递归的底层调用,相当于栈、树的后序遍历 p(0,5)要调用要先调用p(0,2),p(0,5)压入栈中, 同理,p(0,2)要先调用p(0,1),p(0,2)压入栈中 p(0,1)要先调用p(0,0),p(0,1)压原创 2021-07-29 13:42:51 · 923 阅读 · 0 评论 -
左程云——位运算,选择、插入、冒泡排序与二分思想
111原创 2021-07-27 17:26:48 · 355 阅读 · 0 评论