1. 程式人生 > >資訊學奧賽系列教程:演算法和程式

資訊學奧賽系列教程:演算法和程式

演算法的概念:

      演算法是解決問題的步驟的描述。

演算法的描述:

      可以採用自然語言,程式流程圖,計算機程式描述演算法。

      以計算圓的周長和麵積為例

採用自然語言描述為:

  • 開始
  • 輸入半徑R
  • 周長L = 2*3.14*R
  • 面積S = 3.14 *R*R
  • 輸出周長L,面積S
  • 結束

程式流程圖描述演算法:

採用C++語言描述:

#include <iostream>  
using namespace std; 
int main()
{
	int R,L,S;       
	cin>>R;          
	L = 2* 3.14* R;   
	S = 3.14 * R * R; 
	cout<<L<<endl;    
	cout<<S<<endl;    
	return 0;  
}

演算法的主要特點:

  • 可行性:整個問題可以被分解為一個或多個步驟
  • 確定性:每個步驟有確定的定義,不允許歧義、多義
  • 有窮性:演算法必須在指定步驟內完成
  • 輸入項:一個演算法有0個或多個輸入,0輸入時演算法給定條件。
  • 輸入項:一個演算法至少有1個或多個輸出

衡量演算法的指標:

  • 時間複雜度:解決問題需要的時間長短,是一個函式O(f(n))
  • 空間複雜度:解決問題需要用到的計算機記憶體空間大小

演算法相關的題目:

1.演算法是指()

A.為解決問題而編制的計算機程式

B.為解決問題而採取的方法和步驟

C.為解決問題而需要採用的計算機語言

D.為解決問題而採用的計算方法

2.下面關於演算法的錯誤說法是()

A.演算法必須有輸出  

B.演算法必須在計算機上用某種語言實現

C.演算法不一定有輸入

D.演算法必須在有限步執行後能結束