算法一般可以用哪幾種控制結構組合
算法一般可以用哪幾種控制結構組合
算法一般可以用順序、循環(huán)、選擇控制結構組合。算法的控制結構給出了算法的基本框架,它不僅決定了算法中各操作的執(zhí)行順序,也直接反映了算法的設計是否符合結構化原則。
一個算法一般都可以用順序、循環(huán)、選擇三種基本控制結構組合而成。
算法一般都可以用哪幾種控制結構組合而成?
算法一般都可以用順序、循環(huán)、選擇三種基本控制結構組合而成百科。
順序結構表示程序中的各操作是按照它們在源碼中的排列順序依次執(zhí)行的。
選擇結構表示程序的處理需要根據某個特定的條件選擇其中的一個分支執(zhí)行。
選擇結構有單選擇、雙選擇和多選擇三種形式。
循環(huán)結構表示程序反復執(zhí)行某個或某些操作,直到某條件為假(或為真)時才停止循環(huán)。循環(huán)結構的基本形式有兩種:當型循環(huán)和直到型循環(huán)。
算法的特征
一個算法應該具有以下七個重要的特征:
①有窮性:算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止;
②確切性:算法的每一步驟必須有確切的定義;
③輸入項:一個算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指算法本身定出了初始條件;
④輸出項:一個算法有一個或多個輸出,以反映對輸入數據加工后的結果。
沒有輸出的算法是毫無意義的;
⑤可行性:算法中執(zhí)行的任何計算步驟都是可以被分解為基本的可執(zhí)行的操作步,即每個計算步都可以在有限時間內完成(也稱之為有效性);
⑥高效性:執(zhí)行速度快,占用資源少;
⑦健壯性:對數據響應正確。
2018年計算機二級考試公共基礎知識點:算法
2018年計算機二級考試公共基礎知識點:算法 詳細重點學習知識點: 1.算法的概念、算法時間復雜度及空間復雜度的概念 2.數據結構的定義、數據邏輯結構及物理結構的定義 3.棧的定義及其運算、線性鏈表的存儲方式 4.樹與二叉樹的概念、二叉樹的基本性質、完全二叉樹的概念、二叉樹的遍歷 5.二分查找法 6.冒泡排序法 1.1 算法 考點1 算法的基本概念 考試鏈接: 考點1在筆試考試中考核的幾率為30%,主要是以填空題的形式出現,分值為2分,此考點為識記內容,讀者還應該了解算法中對數據的基本運算。 計算機解題的過程實際上是在實施某種算法,這種算法稱為計算機算法。
1.算法的基本特征:可行性、確定性、有窮性、擁有足夠的情報。
2.算法的基本要素: (1)算法中對數據的運算和操作 一個算法由兩種基本要素組成:一是對數據對象的運算和操作;二是算法的控制結構。 在一般的計算機系統(tǒng)中,基本的運算和操作有以下4類:算術運算、邏輯運算、關系運算和數據傳輸。 (2)算法的控制結構:算法中各操作之間的執(zhí)行順序稱為算法的控制結構。 描述算法的工具通常有傳統(tǒng)流程圖、N-S結構化流程圖、算法描述語言等。
一個算法一般都可以用順序、選擇、循環(huán)3種基本控制結構組合而成。 考點2 算法復雜度 考試鏈接: 考點2在筆試考試中,是一個經??疾榈膬热荩诠P試考試中出現的幾率為70%,主要是以選擇的形式出現,分值為2分,此考點為重點識記內容,讀者還應該識記算法時間復雜度及空間復雜度的概念。 1.算法的時間復雜度 算法的時間復雜度是指執(zhí)行算法所需要的計算工作量。
同一個算法用不同的語言實現,或者用不同的編譯程序進行編譯,或者在不同的計算機上運行,效率均不同。這表明使用**的時間單位衡量算法的效率是不合適的。撇開這些與計算機硬件、軟件有關的因素,可以認為一個特定算法\”運行工作量\”的大小,只依賴于問題的規(guī)模(通常用整數n表示),它是問題規(guī)模的函數。
即 算法的工作量=f(n) 2.算法的空間復雜度 算法的空間復雜度是指執(zhí)行這個算法所需要的內存空間。 一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數據所占的存儲空間以及算法執(zhí)行過程中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數據結構所需要的附加存儲空間。
如果額外空間量相對于問題規(guī)模來說是常數,則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術,以便盡量減少不必要的額外空間。 疑難解答:算法的工作量用什么來計算? 算法的工作量用算法所執(zhí)行的基本運算次數來計算,而算法所執(zhí)行的基本運算次數是問題規(guī)模的函數,即算法的工作量=f(n),其中n是問題的規(guī)模。
計算機二級考點
計算機二級考點:
1.算法的概念、算法時間復雜度及空間復雜度的概念
算法的基本特征:可行性、確定性、有窮性、擁有足夠的情報。
算法的基本要素:
(1)算法中對數據的運算和操作
一個算法由兩種基本要素組成:一是對數據對象的運算和操作;二是算法的控制結構。
(2)算法的控制結構:算法中各操作之間的執(zhí)行順序稱為算法的控制結構。
程序開發(fā)中的控制結構是什么?
程序控制結構是指在程序控制下進行的數據傳遞方式。程序控制結構是指以某種順序執(zhí)行的一系列動作,用于解決某個問題。
理論和實踐證明,無論多復雜的算法均可通過順序、選擇、循環(huán)3種基本控制結構構造出來。
每種結構僅有一個入口和出口。由這3種基本結構組成的多層嵌套程序稱為結構化程序。
程序是一個語句序列,執(zhí)行程序就是按特定的次序執(zhí)行程序中的語句。程序中執(zhí)行點的變遷稱為控制流程,當執(zhí)行到程序中的某一條語句時,也說控制轉到了該語句。
由于復雜問題的解法可能涉及復雜的執(zhí)行次序,因此編程語言必須提供表達復雜控制流程的手段,稱為編程語言的控制結構,或程序控制結構。
所謂順序結構程序就是指按語句出現的先后順序執(zhí)行的程序結構,是結構化程序中最簡單的結構。編程語言并不提供專門的控制流語句來表達順序控制結構,而是用程序語句的自然排列順序來表達。
計算機按此順序逐條執(zhí)行語句,當一條語 句執(zhí)行完畢,控制自動轉到下一條語句?,F實世界中這種順序處理的情況是非常普遍的,例如我們接受學校教育一般都是先上小 學,再上中學,再上大學;又如我們燒菜一般都是先熱油鍋,再將蔬菜入鍋翻炒,再加鹽加 佐料,**裝盤。
選擇結構又稱為分支結構。
當程序執(zhí)行到控制分支的語句時,首先判斷條件,根據條件表達式的值選擇相應的語句執(zhí)行(放棄另一部分語句的執(zhí)行)。分支結構包括單分支、雙分支和多分支三種形式。
其中<條件表達式>是布爾表達式,<條件語句體>是由一條或多條語句組成的語句序列。
<條件語句體>的左端與 if 部分相比必須向右縮進,表明它是 if 部分(不妨理解為條件語句的頭 部)的下屬,就像軀體是頭部的下屬一樣。
if 語句的語義很容易理解:首先計算 if 后面的條件表達式,如果結果為 True,則控制轉 到條件語句體的**條語句,一旦條件語句體執(zhí)行完畢,控制即轉到 if 語句的下一條語句; 如果結果為 False,則跳過條件語句體,控制直接轉到 if 語句的下一條語句。圖 1中的流程 圖形象地解釋了 if 語句的語義,其中菱形框表示條件測試。雖然 if 語句根據條件表達式計算 結果的不同而有兩個分支,但我們習慣說這種形式的 if 語句實現的是單分支控制結構,因為 有一個分支什么也不做。
注意,無論條件是真是假,**控制都轉到 if 語句的下一條語句, 也就是說這條 if 語句內部雖有兩個分支,但總體只有一個出口。
所謂順序結構程序就是指按語句出現的先后順序執(zhí)行的程序結構,是結構化程序中最簡單的結構。編程語言并不提供專門的控制流語句來表達順序控制結構,而是用程序語句的自然排列順序來表達。計算機按此順序逐條執(zhí)行語句,當一條語 句執(zhí)行完畢,控制自動轉到下一條語句。
現實世界中這種順序處理的情況是非常普遍的,例如我們接受學校教育一般都是先上小 學,再上中學,再上大學;又如我們燒菜一般都是先熱油鍋,再將蔬菜入鍋翻炒,再加鹽加 佐料,**裝盤。
選擇結構又稱為分支結構。當程序執(zhí)行到控制分支的語句時,首先判斷條件,根據條件表達式的值選擇相應的語句執(zhí)行(放棄另一部分語句的執(zhí)行)。分支結構包括單分支、雙分支和多分支三種形式。