随笔分类 - 数据结构基础
摘要:首先总的纲领就是最优决策原理:过程的最优决策序列具有如下性质:无论过程的初始状态和初始决策是什么,其余的决策都必须相对于初始决策所产生的状态构成一个最优决策序列。下面逐步的来讲解怎么样通过动态决策构建最优二分检索树,首先一步一步的来:前奏:二分检索树(Binary Search Tree)的定义:二分检索树是一棵二元树,它或者为空,或者其每个结点的数据元素都可以比较大小,且满足下面性质:(1)T的左子树中的所有元素都比根结点中的元素小。(2)T的右子树中的所有元素都比根结点中的元素大。(3)T的左子树和右子树也是二分检索树。注:Binary Search Tree要求树中的结点元素值互异。对于
阅读全文
摘要:有人说算法导论中没有回溯和分支定界这两种算法。我觉得这个算是导论中算法的应用吧,废话不多说,走起。回溯算法之子集和数问题。这个算法要解决的问题:假定有N个不同的正数(通常称为权),要求找出这些数中所有使得某和数为M的组合。这种问题的解的形式:(1)问题的解是大小固定的N元组,解向量中的元素的个数就是正数的个数,每个元素为X(i),它的取值为0或者1,表示这个解是否包 含了相对应的正数W(i)。 (2)问题的解是大小不固定的K元组,这里不做讨论。这样的整个的求解过程就构成了一棵树,对于i级上的一个结点,其左儿子是对应于X(i)=1产生...
阅读全文
摘要:update:更正选择中数的描述,在7到39之间的数组大小选择median-of-three来选择pivot,大小等于7的数组则直接使用中数作为pivot。 quicksort可以说是应用最广泛的排序算法之一,它的基本思想是分治法,选择一个pivot(中轴点),将小于pivot放在左边,将大于piv...
阅读全文
摘要:在排序算法的面试中,面试官喜欢考察的就是插入排序、冒泡排序、归并排序、快速排序这四种排序算法,其中快速排序一般会要求现场写代码,这个要注意一下。这些算法的考察点就是要对算法的特点烂熟于胸,熟悉它们各自的空间复杂度、平均时间复杂度、最差时间复杂度。别的不多说,先来写一个快速排序的代码实现:快速排序代码...
阅读全文

浙公网安备 33010602011771号