![](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 · 334 阅读 · 0 评论 -
左程云——堆排序和桶排序,排序算法总结
堆结构非常重要完全二叉树:或者是满的,在不满的最后一层也是从左往右依次变满的。堆逻辑上就是完全二叉树把数组必须从零出发的连续一段可以对应成完全二叉树堆分为大根堆和小根堆大根堆就是要求完全二叉树的每一颗子树最大值就是头结点的值小根堆就是要求完全二叉树的每一颗子树最小值就是头结点的值heapsize就是堆大小heapify(堆化,非常重要的方法,从一个位置出发往下动保证堆结构):void heapify(int* arr, int index, int heapsize){ //in原创 2021-07-30 20:57:29 · 1013 阅读 · 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 · 925 阅读 · 0 评论 -
左程云——位运算,选择、插入、冒泡排序与二分思想
111原创 2021-07-27 17:26:48 · 358 阅读 · 0 评论