![](https://img-blog.csdnimg.cn/20191115193824371.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构和算法
疙瘩村村书记
哇咔咔
展开
-
用递归树方法求解递归式
用递归树方法求解递归式递归式:T(n)=3T(n/4)+Θ(n2)T\left(n\right)=3T\left(n/4\right)+Θ\left(n^2\right)T(n)=3T(n/4)+Θ(n2)我们先来了解一下这个递归式什么意思:333 表示我们将一个问题分解为333个子问题;n/4n/4n/4 则表明每个子问题的规模是原问题的1/41/41/4;T()T\left(\ri...原创 2019-11-26 21:50:38 · 6056 阅读 · 0 评论 -
Strassen算法
Strassen算法时间算法度:Θ(nlog27)≈Θ(n2.8074)Θ\left(n^{log_{2}7}\right)≈Θ\left(n^{2.8074}\right)Θ(nlog27)≈Θ(n2.8074)该算法主旨:StrassenStrassenStrassen算法的核心是让递归树不那么茂盛一点,即只递归777次而不是888次n/2×n/2n/2×n/2n/2×n/2矩阵的乘...原创 2019-11-21 21:45:12 · 366 阅读 · 0 评论 -
最大子数组问题(线性算法)
最大子数组问题(线性算法)时间算法度:Θ(n)Θ\left(n\right)Θ(n)该算法主旨:用一个DataDataData类数组来存储序列0..n0..n0..n的所有元素的和,然后进行比较,选出最大的。在我们循环的往Data[i]Data[i]Data[i]里面存储数据的时候,会进行对Data[i−1]Data[i−1]Data[i−1]的sumsumsum数据进行判断是否小于00...原创 2019-11-16 22:43:15 · 398 阅读 · 0 评论 -
最大子数组问题(分治法)
最大数组问题(分治法)时间算法度:Θ(nlgn)Θ\left(nlgn\right)Θ(nlgn)该算法主旨:原创 2019-11-16 21:03:00 · 306 阅读 · 0 评论 -
霍纳规则
霍纳规则时间算法度:Θ(n)Θ\left(n\right)Θ(n)该算法的主旨:霍纳规则是一种将一元nnn次多项式的求值问题转化为nnn个一次式的算法。实现了用于求值多项式: P(x)=∑k=0nakxk=a0+a1x+a2x2+...+ak−1xk−1+akxkP\left(x\right)=\sum ^{n}_{k=0}a_{k}x^{k}=a_{0}+a_{1}x+a_{2}x^...原创 2019-11-15 22:59:02 · 387 阅读 · 3 评论 -
二分查找法
二分查找法时间算法度:Θ(lgn)Θ(lgn)Θ(lgn)该算法主旨:每次循环迭代查找,都将序列分成两半,再根据判断选择下一个将要分成两半的子序列。伪代码:/* —————————————————————————————————————————————————— * 二分查找法有两种方法,一个是用循环,一个是利用递归 * ————————————————————————————...原创 2019-11-14 21:45:33 · 137 阅读 · 0 评论 -
冒泡排序
冒泡排序时间算法度:Θ(n2)Θ\left(n^2\right)Θ(n2)该算法主旨:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。...原创 2019-11-15 23:48:24 · 213 阅读 · 0 评论 -
归并排序
归并排序时间算法度:Θ(nlogn)Θ\left(nlogn\right)Θ(nlogn)该算法主旨:归并排序算法完全遵照分治模式得三个步骤:分解:分解待排序得nnn个元素的序列,使其成为各具n/2n/2n/2个元素的两个子序列。解决:使用归并排序递归地排序两个子序列。合并:合并两个已排序的子序列以产生已排序的答案。当待排序的序列长度为111时,递归"开始回升",因为长度为111...原创 2019-11-13 21:36:59 · 87 阅读 · 0 评论 -
选择排序
选择排序时间复杂度:Θ(n2)Θ\left(n^2\right)Θ(n2)该算法的主旨:首先找到数组中最小的元素,与数组的第一个元素进行交换。然后找到数组中次最小得元素,与数组得第二个元素进行交换。如此循环到排序完成。伪代码:SELECTION-SORT(A)1 for i = 1 to A.length2 Min = A[i]3 Number = i...原创 2019-11-12 22:38:53 · 94 阅读 · 0 评论 -
插入排序
插入排序时间算法度:Θ(n2)Θ\left(n^2\right)Θ(n2)该算法的主旨:从数组的第二个元素开始,跟前面的元素比较,如果前面的元素大于它,则交换两个元素的位置,直到遇见小于它的元素则停止。如此循环直到排完序。伪代码:INSERTION-SORT(A)1 for j = 2 to A.length2 key = A[j]3 i = j - ...原创 2019-11-12 20:51:47 · 162 阅读 · 0 评论