函式pow(x,y)實現運算x^y,即x的y次方,這裡x和y都為整數。
這裡有演算法的原理剖析:
演算法的基本思想是,減少乘法次數,重複利用結算結果,例如:
x^4,如果逐個相乘的話,需要四次乘法。如果我們這樣分解(x^2)*(x^2)就只需要2兩次乘法,因為x^2的結果我們可以重複利用。所以我們最好做對稱的分解指數y,然後求x^(y/2)的平方。
具體演算法如下:
1 如果y為偶數,直接計算mypow(x, y/2)*mypow(x, y/2);
2 如果y為奇數,則y-1為偶數,回到了第一種情況。
偽**如下:
int mypow(int x, int y)
else
return result;
}
比較pow x,y 的實現演算法
用python,比較pow的實現演算法 主要對比遞迴和while迴圈。powcircle2函式和powcircle類似,powcircle2更容易理解一些。from time import ctime from math import def powrecursion x,y if y 0 retu...
Partition函式實現的快速排序演算法
被傳值傳引用的問題還有一些雜事困擾了一下午,現在終於可以靜下心來寫部落格了。這個partition函式是我在 劍指offer 那本書上看到的,其實對應於快排是乙個單項掃瞄。這個函式在很多演算法題上都有應用,主要原理就是選定乙個參考值,然後將資料分成兩部分,左邊都是比它小的,右邊都是比它大的。然後把中...
演算法 快速排序實現 定製比較函式
1.快速排序基本演算法 1 include2 const static int num 47 3 4int quick sort int a,int start,int end 21 printf i d j d n i,j 2223 a i partition 以上迴圈結束,i j,i處即為分割點...