随笔分类 - 算法基础
摘要:(前言:嗯,之前是学过一点排序算法的,比如说快排,归并,插入排序,冒泡排序什么的,但是有好多学校也没教,自己学的也不扎实,这次自己一边慢慢写,一边教自己一边,努力把这些搞懂,但我肯定一天是写不完的,所以要多等) 1 算法分类 1.1 比较排序 1.2 非比较排序 复杂度 2023年08月30日 16
阅读全文
摘要:1. 选择排序和冒泡排序 选择排序是O(n2),每次选取最大的,放在最前面,然后下次从第二个开始找到最后一个。 冒泡也是O(n2),一直交换到最后。 2. 插入排序 插入排序最坏是O(n2),最好是O(n),但是算法一般都是按照最坏的来。插入是先排序0-1,然后0-2,然后0-3,eq.:排序0-5
阅读全文
摘要:(本文大多从杀戒之声处来,就想着自己方便看) 两链表相交问题 所谓相交,是指两链表有某一内存地址相同,则为相交, 判断有环无环, 哈希表(set),第一次相同(单向链表) 快慢指针,快走2,慢走1,快慢指针第一次相遇后,将快指针返回头节点,慢指针不动,快改为走1,看快慢节点是否能相遇,有环则一定会在
阅读全文
摘要:mid=(L+R)/2 可能会溢出;改成 mid=L+(L-R)/2;提升效率,改成mid=L+(R-L)>>1。 mid=(L+R)/2 可能会溢出;改成 mid=L+(L-R)/2;提升效率,改成mid=L+(R-L)>>1。 其中:a代表子规模执行次数,b代表子规模大小,d代表除了子规模调用其
阅读全文
摘要:# 堆排序 1. 堆结构就是用数组实现的完全二叉树结构 2. 完全二叉树中如果每棵子树的最大值都在顶部就是大根堆 3. 反之为小根堆 4. 堆结构的heapinsert与heapify操作 - heapinsert:新进入的元素都要去跟自己的父元素比较,如果大,就交换。时间复杂度和高度一致,O(lo
阅读全文