Fork me on GitHub
返回顶部
跳到底部

12 2018 档案

摘要:快速排序 快速排序是一种基于分治的算法,其基本思想是将一个大数组按照一个【基准数】分为左右两份,左边的部分都不大于基准数,右边的部分都不小于基准数。然后,对这两份在分别应用快速排序,直到剩下一个元素为止。快速排序的平均时间复杂度为nlog(n)。 下面是选取数组最左边的元素为基准元素的快排算法: C 阅读全文
posted @ 2018-12-30 14:07 sqmax 阅读(250) 评论(0) 推荐(0)
摘要:完全二叉树适合用数组存储,而且从第二个位置及a[1]开始存储,这样对于一个节点 ,它的左子树和右子树就分别为 和`i 2+1`。 对于一个完全二叉树存储的树结构,可以用如下方法来它是不是一个堆。 方法1: 调用时直接直接将树根1传入就行了。 上面是考试时想到的方法,有点麻烦,下面是别人更简洁的方法。 阅读全文
posted @ 2018-12-10 16:40 sqmax 阅读(1271) 评论(0) 推荐(0)
摘要:有这么一类问题:枚举从N个整数中选择K个来满足某种条件。我们可以在使用深度优先时,对每一个元素都可以有选与不选两种方案(有的问题还可以多次选)。 学到这招后,我会解了许多题,下面两个题我一开始就是用这种方法解得。但可惜都不是最优解。 这种方法因为每个元素都有两个选择,时间复杂度很高,下面举例进行说明 阅读全文
posted @ 2018-12-08 12:08 sqmax 阅读(436) 评论(0) 推荐(0)
摘要:DFS遍历图时的小技巧 我们通常使用DFS遍历图时,用vis[i]=true;来标记访问过的节点,但是如果要让我们统计图中所有边的长度的话,如果我们还这样做的话,对于非环形图来说,没问题,但是对于环形图来说,就可能访问不到最后一条边,如A B C A,A标记之后就不能统计到C A了。 这时我们的办法 阅读全文
posted @ 2018-12-07 18:11 sqmax 阅读(1220) 评论(0) 推荐(0)
摘要:最长连续子序列和 最长不下降子序列 最长回文串 若[i,j]之间的字符串回文,则dp[i][j]=1,否则dp[i][j]=0; 先令 [i,j] 的长度L为1,即i=j,然后逐渐增大,当L大于3,如果dp[i 1][j 1]=1&&s[i]==s[j],则dp[i][j]=1; 相关问题: "10 阅读全文
posted @ 2018-12-04 13:11 sqmax 阅读(209) 评论(0) 推荐(0)