經典演算法學習 求次方函式實現

2021-07-23 08:09:20 字數 626 閱讀 4037

在如今很多的筆試面試中,都會出現讓你實現某個函式的,並且進行優化,比如降低時間複雜度。而在手寫**中,求次方函式是很高頻的考點。示例**上傳至:

題目如下:

實現   double power(double x, int n)函式,實現求x的n次方。注意,n有可能為正或者負。

(1)最簡單的實現,迴圈

// 最簡單的方式,複雜度為n

double power1(double x ,int n)

return n >= 0 ? result : 1/result;

}

(2)遞迴實現

// 遞迴實現

double power2(double x ,int n)

if (n == 1)

if (n == -1)

if (remain == 0)

else

}

這裡有三個遞迴結束條件,-1,0,1.    

遞迴的思路就是比如求2^8, 那麼其實就是 2^4 * 2^4   .    如果求2^9,那麼其實就是求 2^4*2^4*2  .   求次方無外乎這兩種結果。 同時要處理好次方為負的情況。

經典演算法學習 氣泡排序

氣泡排序是我們學習的第一種排序演算法,應該也算是最簡單 最常用的排序演算法了。不管怎麼說,學會它是必然的。今天我們就用c語言來實現該演算法。示例 已經上傳至 演算法描述如下 1 比較相鄰的前後兩個資料,如果前面資料大於後面的資料,就將兩個資料交換 2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷...

經典演算法學習 堆排序

堆排序是相對其他排序稍微麻煩的排序,是一種利用堆的性質進行的選擇排序。堆其實是一棵完全二叉樹,只要任何乙個非葉節點的關鍵字不大於或者不小於其左右孩子節點,就可以形成堆。堆分為大頂堆和小頂堆。由上述性質可知大頂堆的堆頂的關鍵字是所有關鍵字中最大的,小頂堆的堆頂的關鍵字是所有關鍵字中最小的。堆排序同快速...

經典演算法學習 雜湊查詢

雜湊查詢也稱為雜湊查詢。所謂的雜湊其實就是在記錄的儲存位置和記錄的關鍵字之間建立乙個確定的對應關係f,使得每個關鍵字key對應乙個儲存位置f key 查詢時,根據這個確定的對應關係找到給定值的對映f key 若查詢集合中存在這個記錄,則必定在f key 的位置上。雜湊技術既是一種儲存方法,也是一種查...