
算法新解
文章平均质量分 90
一即一切2120
加油,用博客记录读书轨迹
展开
-
【一文吃透归并排序】基本归并·原地归并·自然归并 C++
不从整体开始切分,而是一开始把每一个元素当成一个列表,然后,自底向上地合并相邻的列表,重复利用开始的那张图。原创 2023-05-14 13:56:12 · 1453 阅读 · 0 评论 -
【迷宫问题】找出迷宫所有可能的路径C++
用栈实现迷宫问题,找出所有可达的路径。原创 2023-05-13 16:53:52 · 1791 阅读 · 1 评论 -
【顶配快速排序】CUTOFF配合三点中值法的三路划分
Robert Sedgewick 观察到,当序列较短时,快速排序引入的额外代价比较明显,此时插入排序反而更快。极端情况下,所有数字都相同,会发生N/2次不必要的交换,因为划分是平衡的,故总体性能还是O(NlgN)。一种抽样的方法是检查,头,尾巴,中间的元素,然后选出其中的中位数作为pivot,即可保证最短序列至少有一个元素。原创 2023-05-11 18:43:04 · 1002 阅读 · 0 评论 -
【Queue新技法】用双数组实现一个队列 C++
说明:记入队的列表为F(Front),出队的队列为R(Rear),那完整的队列。是O(N),可只有几次,但O(1)出队操作却有N个,即均摊到每次出队操作上只有。如上图所示,左边是原来的队列,右边是翻转后的队列。,也叫循环缓冲区,如图灰色部分就是队列的内容。原创 2023-05-10 12:44:49 · 1134 阅读 · 0 评论 -
【二分查找】求解单调方程的解 C++实现
查找是否存在某一个值。可以先找中间,每次放弃一半,效率。注意,为了一般化单调递增函数或者数列,我们把。,单调递增,现在给一个正整数。最常见的,一个严格单调递增。原创 2023-05-08 17:58:13 · 645 阅读 · 0 评论 -
【查找第K个元素】无需排序O(N),八岁都能懂
O(n)效率实现中位数,第k大值的算法。原创 2023-05-08 14:53:32 · 480 阅读 · 0 评论