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

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

發布時間: 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. 演算法等同於計算方法

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

熱點內容
C語言cast 發布:2024-11-30 15:34:39 瀏覽:982
查看資料庫事務 發布:2024-11-30 15:29:34 瀏覽:56
python無線 發布:2024-11-30 15:24:49 瀏覽:359
安卓手機怎麼下符文之地 發布:2024-11-30 14:49:28 瀏覽:878
安卓ota在哪裡打開 發布:2024-11-30 14:46:55 瀏覽:102
mapreduce演算法 發布:2024-11-30 14:46:50 瀏覽:16
python的shell 發布:2024-11-30 14:46:49 瀏覽:730
變頻器什麼時候配置電抗器 發布:2024-11-30 14:46:37 瀏覽:700
官方版我的世界登錄網易伺服器 發布:2024-11-30 14:38:37 瀏覽:113
安卓手機沒電會出現什麼問題 發布:2024-11-30 14:37:31 瀏覽:984