亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

1.2 算法和算法的表示

2023-06-09 12:08:06
字體:
來源:轉載
供稿:網友

1.2 算法和算法的表示

1.2.1 算法的概念

1.算法的基本概念

什么是算法?當代著名計算機科學家D.E.Knuth在他撰寫的《THE ART OF COMPUTER PROGRAMMING》一書中寫到:"一個算法,就是一個有窮規則的集合,其中之規則規定了一個解決某一特定類型的問題的運算序列。"簡單地說,任何解決問題的過程都是由一定的步驟組成的,把解決問題確定的方法和有限的步驟稱作為算法。

需要說明的是,不是只有計算問題才有算法。例如,加工一張寫字臺,其加工順序是:桌腿 桌面 抽屜 組裝,這就是加工這張寫字臺的算法。當然,如果是按"抽屜 桌面 桌腿 組裝"這樣的順序加工,那就是加工這張寫字臺有另一種算法,這其中沒有計算問題。通常計算機算法分為兩大類:數值運算算法和非數值運算算法。數值運算是指對問題求數值解,例如對微分方程求解、對函數的定積分求解、對高次方程求解等,都屬于數值運算范圍。非數值運算包括非常廣泛的領域,例如資料檢索、事務管理、數據處理等。數值運算有確定的數學模型,一般都有比較成熟的算法。許多常用算法通常還會被編寫成通用程序并匯編成各種程序庫的形式,用戶需要時可直接調用。例如數學程序庫、數學軟件包等。而非數值運算的種類繁多,要求不一,很難提供統一規范的算法。在一些關于算法分析的著作中,一般也只是對典型算法作詳細討論,其它更多的非數值運算是需要用戶設計其算法的。

下面通過三個簡單的問題說明設計算法的思維方法。

例1-1:有黑和藍兩個墨水瓶,但卻錯把黑墨水裝在了藍墨水瓶子里,而藍墨水錯裝在了黑墨水瓶子里,要求將其互換。

算法分析:這是一個非數值運算問題。因為兩個瓶子的墨水不能直接交換,所以,解決這一問題的關鍵是需要引入第三個墨水瓶。設第三個墨水瓶為白色,其交換步驟如下:

① 將黑瓶中的藍墨水裝入白瓶中;② 將藍瓶中的黑墨水裝入黑瓶中;③ 將白瓶中的藍墨水裝入藍瓶中; ④ 交換結束。

例1-2:計算函數M(x)的值。函數M(x)為:

其中,a,b,c為常數。

算法分析:本題是一個數值運算問題。其中M代表要計算的函數值,有兩個不同的表達式,根據x的取值決定采用哪一個算式。根據計算機具有邏輯判斷的基本功能,用計算機解題的算法如下:

① 將a、b、c和x的值輸入到計算機;

② 判斷x≤a?如果條件成立,執行第③步,否則執行第④步;

③ 按表達式bx+a2計算出結果存放到M中,然后執行第⑤步;

④ 按表達式a(c-x)+c3計算出結果存放到M中,然后執行第⑤步;

⑤ 輸出M的值;

⑥ 算法結束。

例1-3:給定兩個正整數m和n(m≥n),求它們的最大公約數。
  算法分析:這也是一個數值運算問題,它有成熟的算法,我國數學家秦九韶在《算書九章》一書中曾記載了這個算法。求最大公約數的問題一般用輾轉相除法(也稱歐幾里德算法)求解。
  例如:設m 35,n 15,余數用r表示。它們的最大公約數的求法如下:
  35/15商2 余數為5 以n作m,以r作n,繼續相除;
  15/5商3 余數為0 當余數為零時,所得n即為兩數的最大公約數。
  所以35和15兩數的最大公約數為5。
  用這種方法求兩數的最大公約數,其算法可以描述如下:
  ① 將兩個正整數存放到變量m和n中;
 ?、?求余數:計算m除以n,將所得余數存放到變量r中;
 ?、?判斷余數是否為0:若余數為0則執行第⑤步,否則執行第④步;
 ?、?更新被除數和余數:將n的值存放到m中,將r的值存放到n中,并轉向第②步繼續循環執行;
 ?、葺敵鰊的當前值,算法結束。
  如此循環,直到得到結果。
  由上述三個簡單的例子可以看出,一個算法由若干操作步驟構成,并且這些操作是按一定的控制結構所規定的次序執行。如例1-1中的四個操作步驟是順序執行的,稱之為順序結構。而在例1-2中,則不是按操作步驟順序執行,也不是所有步驟都執行。如第三步和第四步的兩個操作就不能同時被執行,它們需要根據條件判斷決定執行哪個操作,這種結構稱之為分支結構。在例1-3中不僅包含了判斷,而且需要重復執行。如第二步到第五步之間的步驟就需要根據條件判斷是否重復執行,并且一直延續到條件"余數為0"為止,這種具有重復執行功能的結構稱之為循環結構。

2.算法的兩要素

由上述三個例子可以看出,任何簡單或復雜的算法都是由基本功能操作和控制結構這兩個要素組成。不論計算機的種類如何之多,但它們最基本的功能操作是一致的。計算機的基本功能操作包括以下四個方面:

(1) 邏輯運算:與、或、非;

(2) 算術運算:加、減、乘、除;

(3) 數據比較:大于、小于、等于、不等于、大于等于、小于等于;

(4) 數據傳送:輸入、輸出、賦值。

算法的控制結構決定了算法的執行順序。如以上例題所示,算法的基本控制結構通常包括順序結構、分支結構和循環結構。不論是簡單的還是復雜的算法,都是由這三種基本控制結構組合而成的。

算法是對程序控制結構的描述,而數據結構是對程序中數據的描述。因為算法的處理對象必然是問題中所涉及到的相關數據,所以不能離開數據結構去抽象地分析程序的算法,也不能脫離算法去孤立地研究程序的數據結構,而只能從算法和數據結構的統一上去認識程序。但是,在計算機的高級語言中,數據結構是通過數據類型表現的,本書在第三章、第七章、第十章和第十一章中,將通過對C語言數據類型的詳細描述說明數據結構在程序設計中的作用。這里我們只討論算法的問題。

需要強調的是,設計算法與演繹數學有明顯區別,演繹數學是以公理系統為基礎,通過有限次推演完成對問題的求解。每次推演都是對問題的進一步求解,如此不斷推演,直到能將問題的解完全描述出來為止。而設計算法則是充分利用解題環境所提供的基本操作,對輸入數據進行逐步加工、變換和處理,從而達到解決問題的目的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人剧情片在线观看| 亚洲国产日韩欧美在线99| 日韩hd视频在线观看| 欧美亚洲日本黄色| 亚洲天堂男人天堂女人天堂| 精品久久香蕉国产线看观看gif| 美日韩丰满少妇在线观看| 国产精品久久久久av免费| 久久久久成人精品| 亚洲女性裸体视频| 欧美电影免费观看| 久久青草精品视频免费观看| 亚洲天堂色网站| 国产精品电影一区| 日韩黄在线观看| 久久久久久999| 成人高清视频观看www| 成人啪啪免费看| 欧美在线性视频| 97精品久久久| 国产精品国模在线| 日韩欧美黄色动漫| 日韩一区二区欧美| 国产精品视频免费在线观看| 全亚洲最色的网站在线观看| 欧美高清在线视频观看不卡| 成人免费淫片视频软件| 国产一区二中文字幕在线看| 成人高h视频在线| 国产一区二区三区免费视频| 欧美日韩精品中文字幕| 亚洲爱爱爱爱爱| 欧美性在线视频| 国产精品中文久久久久久久| 亚洲精品www久久久久久广东| 欧美丰满老妇厨房牲生活| 97国产精品免费视频| 日韩电影大全免费观看2023年上| 欧美色视频日本高清在线观看| 亚洲自拍欧美色图| 亚洲国产天堂久久国产91| 91av国产在线| 亚洲精品美女久久久久| 久久久久久久久久久久久久久久久久av| 国产欧美一区二区三区久久| 92看片淫黄大片看国产片| 中文字幕精品视频| 8090成年在线看片午夜| 日韩精品高清在线观看| 久久久久999| 福利精品视频在线| 亚洲精品美女在线观看| 日韩av电影手机在线| 欧美性受xxx| 亚洲自拍偷拍第一页| 日韩电影网在线| 国产精品久久久久久av福利| 91国在线精品国内播放| 国产精品白丝av嫩草影院| 日韩欧美成人免费视频| 国产亚洲成精品久久| 国产精品久久久久久婷婷天堂| 精品视频9999| 日韩成人中文字幕在线观看| 国产精品ⅴa在线观看h| 成人在线观看视频网站| 国产精品久久久久久久久久三级| 97成人精品区在线播放| 亚洲四色影视在线观看| 久久精品人人爽| 成人美女免费网站视频| 国产精品久久久久999| 欧美性猛交xxxx免费看漫画| 精品国内亚洲在观看18黄| 亚洲一区二区少妇| 亚洲欧美国产精品久久久久久久| 日韩av电影手机在线观看| 国产精品视频一区二区三区四| 亚洲色图五月天| 亚洲美女视频网站| 国产91露脸中文字幕在线| 久久精品2019中文字幕| 亚洲图片在区色| 国产亚洲精品va在线观看| 国内免费久久久久久久久久久| 国产成人综合一区二区三区| 一区二区中文字幕| 日韩在线免费av| 亚洲国产欧美日韩精品| 亚洲人a成www在线影院| 国内外成人免费激情在线视频| 国产一区二区三区精品久久久| 精品国产精品三级精品av网址| 亚洲在线视频观看| 国内精久久久久久久久久人| 亚洲一区二区精品| 青青青国产精品一区二区| 日韩精品在线视频| 久久影视电视剧免费网站| 国产精品偷伦一区二区| 国模私拍视频一区| 成人美女免费网站视频| 久久久久久有精品国产| 久久久伊人日本| 欧美高跟鞋交xxxxhd| 久久久久久久网站| 欧美一区二区三区精品电影| 亚洲а∨天堂久久精品9966| 亚洲综合精品伊人久久| 91国内在线视频| 中文字幕日韩欧美在线视频| 国产精品日日做人人爱| 91人人爽人人爽人人精88v| 色爱av美腿丝袜综合粉嫩av| 欧美xxxx18性欧美| 欧洲美女7788成人免费视频| 欧美性猛交99久久久久99按摩| 国产精品久在线观看| 色综合老司机第九色激情| 欧美日韩一区二区三区在线免费观看| 精品国产欧美成人夜夜嗨| 中文字幕亚洲欧美日韩高清| 欧美视频在线免费| 永久免费毛片在线播放不卡| 97免费中文视频在线观看| 精品国产精品三级精品av网址| 国产精品日韩在线| 久久精品在线播放| 91精品国产91久久久久久不卡| 97**国产露脸精品国产| 亚洲欧美国产va在线影院| 欧美高跟鞋交xxxxxhd| 久久夜色精品国产| 成人免费看片视频| 亚洲黄色在线看| 亚洲理论片在线观看| 亚洲精品永久免费精品| 国产精品久久久久久久9999| 久久久久久午夜| 亚洲一区二区黄| 国产999精品久久久影片官网| 成人免费视频网| 欧美激情综合亚洲一二区| 亚州精品天堂中文字幕| 91久久久久久久久久久久久| 91九色国产社区在线观看| 97在线精品国自产拍中文| 午夜精品久久久久久99热软件| 色婷婷综合久久久久| 精品国产网站地址| 亚洲最新在线视频| 亚洲第一精品夜夜躁人人躁| 欧美日韩国产影院| 国内精品久久久久久久久| 91精品免费看| 91在线视频导航| 精品亚洲男同gayvideo网站| 亚洲午夜激情免费视频| 国产精品免费在线免费| 国产大片精品免费永久看nba| 日韩成人久久久| 欧美精品在线观看| 国产精品色婷婷视频| 精品高清美女精品国产区|