當前位置:首頁 » 操作系統 » 數值演算法與非數值演算法

數值演算法與非數值演算法

發布時間: 2023-10-27 20:47:31

A. (2)非數值計算常用經典演算法

1、交換(兩量交換藉助第三者) 不藉助第三個變數

參考:
http://blog.csdn.net/hackbuteer1/article/details/6531775

2、累加

累加演算法的要領是形如「s=s+A」的累加式,此式必須出現在循環中才能被反復執行,從而實現累加功能。「A」通常是有規律變化的表達式,s在進入循環前必須獲得合適的初值,通常為0。
例如:求1+2+3+……+100的和。
sum=0;i=1;
sum=sum+i;
i++;

3、累乘

累乘演算法的要領是形如「s=s*A」的累乘式,此式必須出現在循環中才能被反復執行,從而實現累乘功能。「A」通常是有規律變化的表達式,s在進入循環前必須獲得合適的初值,通常為1。
例如:求10!
n=10;sum=1;
n>0
sum=sum*n;
n--;

也稱為「枚舉法」,即將可能出現的每一種情況一一測試,判斷是否滿足條件,一般採用循環來實現。
例如:用窮舉法輸出所有的水仙花數(即這樣的三位正整數:其每位數位上的數字的立方和與該數相等,比如:13+53+33=153)。

參考:
http://www.cnblogs.com/fanyong/archive/2012/03/23/2413559.html
http://www.cnblogs.com/kkun/archive/2011/11/23/2260312.html

冒泡排序

假設要對含有n個數的序列進行升序排列,冒泡排序演算法步驟是:
1、從存放序列的數組中的第一個元素開始到最後一個元素,依次對相鄰兩數進行比較,若前者大後者小,則交換兩數的位置;
2、第一趟結束後,最大數就存放到數組的最後一個元素里了,然後從第一個元素開始到倒數第二個元素,依次對相鄰兩數進行比較,若前者大後者小,則交換兩數的位置;
3、重復步驟1 n-1趟,每趟比前一趟少比較一次,即可完成所求。

(2)選擇法排序

選擇法排序是相對好理解的排序演算法。假設要對含有n個數的序列進行升序排列,演算法步驟是:
1、從數組存放的n個數中找出最小數的下標(演算法見下面的「求最值」),然後將最小數與第1個數交換位置;
2、除第1個數以外,再從其餘n-1個數中找出最小數(即n個數中的次小數)的下標,將此數與第2個數交換位置;
3、重復步驟1 n-1趟,即可完成所求。

(3)插入法排序

要想很好地掌握此演算法,先請了解「有序序列的插入演算法」,就是將某數據插入到一個有序序列後,該序列仍然有序。插入法排序的要領就是每讀入一個數立即插入到最終存放的數組中,每次插入都使得該數組有序。
參考:
http://www.cnblogs.com/fanyong/archive/2012/03/23/2413553.html

**(4)歸並排序 **

即將兩個都升序(或降序)排列的數據序列合並成一個仍按原序排列的序列。
例如:有一個含有6個數據的升序序列和一個含有4個數據的升序序列,將二者合並成一個含有10個數據的升序序列。

參考: http://blog.csdn.net/cwj649956781/article/details/7409635

(1)順序查找(即線性查找)

順序查找的思路是:將待查找的量與數組中的每一個元素進行比較,若有一個元素與之相等則找到;若沒有一個元素與之相等則找不到。
例如:任意讀入10個數存放到數組a中,然後讀入待查找數值,存放到x中,判斷a中有無與x等值的數。

(2)折半查找(即二分法)

順序查找的效率較低,當數據很多時,用二分法查找可以提高效率。使用二分法查找的前提是數列必須有序。
二分法查找的思路是:要查找的關鍵值同數組的中間一個元素比較,若相同則查找成功,結束;否則判別關鍵值落在數組的哪半部分,就在這半部分中按上述方法繼續比較,直到找到或數組中沒有這樣的元素值為止。
例如:任意讀入一個整數x,在升序數組a中查找是否有與x等值的元素。
參考: http://blog.csdn.net/shuilan0066/article/details/7608096

B. 演算法等同於計算方法

演算法不等同於計算方法。
演算法的定義為解決問題確定的方法和有限的步驟。
而演算法分為兩大類:數值運算演算法和非數值運算演算法。計算方法中並不包括非數值運算演算法,因此演算法不等同於計算方法,當然啦 這是在計算機學中的定義,不同地方將有不同的意義,若是僅僅談數學上的演算法,確實與計算方法相似。
純手打,希望能幫到你~

熱點內容
掃描伺服器名稱如何填 發布:2024-05-18 13:36:29 瀏覽:114
芒果緩存的視頻看不了視頻怎麼下載不了 發布:2024-05-18 13:35:14 瀏覽:518
c語言發簡訊 發布:2024-05-18 13:23:08 瀏覽:833
vb資料庫程序 發布:2024-05-18 13:01:57 瀏覽:111
新建文件夾2免費手機 發布:2024-05-18 12:56:13 瀏覽:365
自己在家搭建伺服器有水冷散熱嗎 發布:2024-05-18 12:47:27 瀏覽:649
舊版的安卓手機怎麼使用微信 發布:2024-05-18 12:46:36 瀏覽:467
我的世界伺服器開多久 發布:2024-05-18 12:45:32 瀏覽:593
vba獲取網頁表格資料庫資料庫資料庫 發布:2024-05-18 12:23:24 瀏覽:700
騰訊伺服器為什麼卡頓 發布:2024-05-18 12:02:12 瀏覽:306