演算法設計技巧與分析筆記 第一章

2021-07-11 17:32:09 字數 924 閱讀 6679

1.搜尋:設a【1……n】為乙個n個元素的陣列,判定給定元素x是否在a中

線性搜尋:直接掃瞄a中所有專案,將每個專案與x做比較。

二分搜尋

a【low……high】為有序非空陣列(假定為公升序),a【mid】為中間元素

演算法分析:時間複雜度:o(log n)

2.排序設a【1……n】為乙個n個元素的陣列,將a中元素進行排序

選擇排序(selectionsort):

首先找到最小元素,並將其放在a中,然後找到剩下n-1個元素中最小元素,放入a中,重複值數列有序

元素比較次數:n(n-1)/2;

插入排序(insertionsort):

從大小為1的a開始,它自然是已排序的,則接下來的第i次中,將a【i】插入到已排序的子陣列a【1…i-1】中的合適位置,重複直到數列有序。

元素比較次數:n-1到n(n-1)/2之間,元素比較次數取決於輸入元素的順序;

自底向上排序(bottomupsort):

將元素分為以1為單位的陣列,先合併為乙個2元素的排序序列,然後將每兩個連續的2元素序列合併為大小為4的排序序列,……在第j次迭代中,合併n/2^j(下取整)對大小為2^(j-1)的排序序列,若剩餘k個元素,1<=k<=2^(j-1)時,將k放在下一次合併中,若2^(j-1)元素比較次數:(nlogn)/2到nlogn-n+1之間;元素比較次數與元素輸入次序有關;

演算法思想結合下圖:

演算法設計與分析 第一章演算法概論

可由乙個給定計算模型機械地執行的規則或計算步驟序列稱為該計算模型的乙個計算 演算法是滿足下列條件的計算 輸出 滿足給定約束條件地結果 演算法的目的是求解問題 乙個演算法面向乙個問題,而不是僅求解乙個問題的乙個或幾個例項 偽 例項 input a 1,n n個數 output a 1,n n個sort...

演算法設計與分析 第一章 遞迴演算法

緒論 演算法的五大特性 輸入 乙個演算法有零個或多個輸入。輸出 乙個演算法有乙個或多個輸出。有窮性 乙個演算法必須總是在執行有窮步之後結束,且每一步都在有窮時間內完成。確定性 演算法中的每一條指令必須有確切的含義,對於相同的輸入只能得到相同的輸出。可行性 演算法描述的操作可以通過已經實現的基本操作執...

演算法設計與分析學習筆記 第一章 演算法引論

通俗定義 解決問題的方法或過程。嚴格定義 輸入 有0個或多個輸入 輸出 有乙個或多個輸出 確定性 每條指令清晰 無歧義 有限性 指令執行次數和時間都有限 演算法的效能標準 正確性 效率與低儲存量需求 演算法的事前估計 時間複雜度度量 執行時間 演算法中每條語句執行時間之和。每條語句執行時間 該語句的...