日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ReviewForJob(1)数据结构与算法分析引论

發布時間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ReviewForJob(1)数据结构与算法分析引论 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【1】 數學基礎

1.1)本書將使用以下4個定義:?
?
對上述定義的分析(Analysis):

????-?A1)第一個定義是說T(N)的增長率小于等于f(N)的增長率; ????-?A2)第二個定義是說T(N)的增長率大于等于g(N)的增長率; ????-?A3)第三個定義是說T(N)的增長率等于h(N)的增長率; ????-?A4)第四個定義是說T(N)的增長率小于p(N)的增長率, 它不同于大O,因為大O 包含增長率相同這種可能性;


1.2)我們引入了相對增長率的概念, 并將其應用到算法分析;?

1.3)比較1000N 與 N^2 的大小??
雖然N 較小時,1000N 大于 N^2 ,但 N^2 以更快的速度增長,因為N^2 最終將更大;?

1.4)這種情況下,N=1000 是個轉折點;?
第一個定義說,最后總會存在某個點 n0, 從它以后 cf(N) 總是至少與 T(N)一樣大, 從而忽略掉常數因子, 則f(N) 至少與 T(N) 一樣大;?

1.5)上界與下界?
當我們說T(N)=O(f(N))時,我們是在保證函數T(N)是在不快于f(N)的速度增長;因此f(N)是T(N)的一個上界, 也可以說f(N)=Ω(T(N))意味著T(N)是f(N)的一個下界;?

1.6)直觀上說?
?

1.7)我們需要掌握的結論為:?
?

1.8)以上信息足以按照增長率對大部分常見的函數進行分類(如下圖)?


【2】遞歸簡論 1)當編寫遞歸例程的時候,關鍵是要牢記遞歸的四條基本法則-Principle: P1)基準情形:必須總是有某些基準情形,它無需遞歸就能解除; P2)不斷推進:對于那些需要遞歸求解的情形,每一次遞歸調用都必須要是求解狀況朝接近基準情形的方向前進; P3)設計法則:假設所有的遞歸調用都能運行; P4)合成效益法則(compound interest rule):在求解一個問題的同一實例時, 切勿在不同的遞歸調用中作重復性工作 ; Attention)凡是可以用循環代替的 遞歸函數,他就不是一個好的遞歸函數;(因為當一個遞歸可以被轉化為循環時,其遞歸使用效率低得離譜)
【3】遞歸荔枝 荔枝1)F(0)=0 且 F(x)=2F(x-1)+x^2? #include <stdio.h>// compute the expr F(0)=0 且 F(x)=2F(x-1)+x^2 int func(int x) {if(x==0){return 0;}return 2*func(x-1) + x*x; }int main() {int x = 1; for(;x<10;x++){printf("func(%d) = %d \n", x, func(x));} } 荔枝2)打印整數: 1234 -> 1 2 3 4
#include <stdio.h>// output the single integer towards given x. // ex. 1234 should output as 1 2 3 4. void printOutput(int x) {if(x>10){printOutput(x/10);}printf("%d ", x%10); }int main() {int x[] = {12345, 123456, 1234567, 12345678, 123456789};int length = 5;int i = 0;for(;i<length;i++){printf("printOutput(%d) = ", x[i]);printOutput(x[i]);printf("\n");} }

總結

以上是生活随笔為你收集整理的ReviewForJob(1)数据结构与算法分析引论的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。