摘要: 把数组分成三部分,小于划分值、等于划分值和大于划分值三部分(荷兰国旗问题),然后在 < 区 和 > 区 在用快速排序。 这种方法每次都是固定了一批数,而不是像传统的快速排序算法一样每次都只是固定了划分值的位置。 public class QuickSort { public static void 阅读全文
posted @ 2022-01-04 20:07 hzyuan 阅读(143) 评论(0) 推荐(0)
摘要: 左程云算法与数据结构课 https://www.bilibili.com/video/BV13g41157hK?p=2&spm_id_from=pageDriver 小和问题 在一个数组中,每个数左边比当前数小的数累加起来,叫做这个数组的小和。 例如:[1,3,4,2,5],1左边比1小的数,没有; 阅读全文
posted @ 2022-01-04 17:16 hzyuan 阅读(83) 评论(0) 推荐(0)
摘要: 左程云算法与数据结构课 https://www.bilibili.com/video/BV13g41157hK?p=2&spm_id_from=pageDriver Master 公式是用来解决递归问题时间复杂度的公式。 Master公式仅适用于子规模相等的情况 Master 公式 T(N) = a 阅读全文
posted @ 2022-01-04 13:31 hzyuan 阅读(227) 评论(0) 推荐(0)
摘要: 给定一个数组A[L...R],求中间值可以通过 mid = (L+R)/2,A[mid]即为中间值。 但这会出现一个问题,在极端情况下,当数组A很大时,L+R 可能会大于 int 所能表示的范围,造成结果错误。 我们可以通过以下操作求中间值从而避免 L+R 上溢。 mid = L + ((R - L 阅读全文
posted @ 2022-01-04 13:00 hzyuan 阅读(57) 评论(0) 推荐(0)
摘要: 左程云算法与数据结构课 https://www.bilibili.com/video/BV13g41157hK?p=2&spm_id_from=pageDriver 概念 有一个想要测的方法 实现复杂度不好但是容易实现的方法b 实现一个随机样本产生器 把方法a和方法b跑相同的随机样本,看看得到的结果 阅读全文
posted @ 2022-01-04 00:01 hzyuan 阅读(381) 评论(0) 推荐(0)