演算法導論9 1

2022-07-07 15:30:17 字數 628 閱讀 2896

本小節介紹了兩點:

如何找到陣列中的最大值和最小值?

如何同時找到陣列中的最大值和最小值?

最小值和最大值的方法是一致,從陣列中取出乙個值,然後和其他的\(n-1\)個值相比較,不斷更新最大值/最小值,經過\(n-1\)次比較,可以獲得最大值/最小值。

如果沒有同時這個條件的話,可以獨立地求出這兩個值,總計需要\(2n-2\)次比較。

但是有一種更優的方法來同時獲得最大值和最小值。

從待比較陣列中選取兩個元素\(a,b\);

然後這兩個元素進行比較,選出較大值和較小值;

然後較大值和當前最大值比較獲得新的最大值,較小值和當前較小值比較獲得新的最小值;

一次迴圈中比較了\(3\)次,一共有\(\lfloor n/2 \rfloor\)次迴圈,所以一共比較了\(3\lfloor n/2 \rfloor\)次。

如何選取初始的最大值和最小值?

如果元素個數為奇數,初始最大值和最小值為陣列的第乙個元素;

如果元素個數為偶數,先對陣列的前兩個元素進行比較,然後較小值作為初始最小值,較大值作為初始最大值;

思路請參考這裡。

**請參考這裡。

演算法導論 隨機演算法

一.概率分布 對於有些問題本身是屬於概率問題,如僱傭問題 對於此類問題,我們需要利用概率分析來得到演算法的執行時間,有時也用來分析其他的量。例如,僱傭問題中的費用問題也需要結合概率分析來計算得到。為了使用概率分析,我們必須使用或者假設已知關於輸入的概率分布,然後通過分析該演算法計算出平均情況下的執行...

《演算法導論》 演算法導論2 2 1插入排序

2.1 插入排序。我們分析的第乙個演算法是插入排序演算法,輸入 n個數 a1,a2,a3,a4,a5,a6,a7 an 輸出 序列的乙個排列 即重新排序 a1 a2 a3 使a1 a2 a3 插入排序演算法的偽 是以乙個過程的形式給出的,稱為insertion sort,它的引數是乙個陣列。包括了n...

演算法導論目錄

出版者的話 專家指導委員會 譯者序前言 第一部分 基礎知識 引言 第1章 演算法在計算中的作用 1.1 演算法 1.2 作為一種技術的演算法 第2章 演算法入門 2.1 插入排序 2.2 演算法分析 2.3 演算法設計 2.3.1 分治法 2.3.2 分治法分析 第3章 函式的增長 3.1 漸近記號...