資料結構與演算法 為什麼要使用演算法

2021-09-02 12:03:46 字數 1133 閱讀 9679

今天來說說為什麼需要使用演算法?

說完了演算法的概念,我們舉個例子說一下為什麼需要演算法?

public class test 

long endtime = system.currenttimemillis();

system.out.println("結果:" + sum);

system.out.println("用時:" + (endtime - starttime));

} /**

* 使用等差數列演算法計算

* * @param n

*/private void advancemethod(long n)

public static void main(string args) throws interruptedexception

}

輸出結果:

-------當n=1000的時候------

**使用原始迴圈演算法**

結果:500500

用時:0

**使用等差數列演算法**

結果:500500

用時:0

-------當n=1000000的時候------

**使用原始迴圈演算法**

結果:500000500000

用時:3

**使用等差數列演算法**

結果:500000500000

用時:0

-------當n=1000000000的時候------

**使用原始迴圈演算法**

結果:500000000500000000

用時:2070

**使用等差數列演算法**

結果:500000000500000000

用時:0

從上面的結果可以看見,使用迴圈演算法的所用時間不斷的增加,而且達到某個數量級之後(例如10的20次方),估計我們等死也等不到結果出來,而反觀使用等差數列演算法,使用的實際都是0,當然,其實不是0,只不過太快了,沒有顯示出來而已,兩個計算方式相互比較一下,演算法的效能一下子就看出來了。

而且對於現今大資料來說,動不動就是幾億幾十億的資料,計算的過程比我們上面的更加複雜,所需要的時間就更多,這時候如果不使用相應的演算法,解決乙個問題的時間基本是不可估計的,因此,我們需要演算法

資料結構 為什麼要使用一致性雜湊演算法?

話不多說,先看個案例 我們有乙個分布式快取,此時我們有3萬張要存入快取中。餘數可以對應到相應的快取節點,但是這樣有乙個缺陷 如果我們新增乙個節點 s4 可以發現乙個這樣的問題,有乙個對應id為6 以前 6 3 0 s0 現在 6 4 2 s2 由於伺服器數量的改變,導致大量快取失效,請求只能直接查詢...

python為什麼要學資料結構與演算法

如果 a b c 1000,且 a 2 b 2 c 2 a,b,c 為自然數 如何求出所有a b c可能的組合?import time start time time.time 注意是三重迴圈 for a in range 0,1001 for b in range 0,1001 for c in ...

資料結構與演算法 01 為什麼要學資料結構與演算法

從今天起,我打算寫乙個系列,關於資料結構與演算法.這篇文章,算是乙個開篇之詞吧.資料結構與演算法,作業系統,計算機組成原理,還有計算機網路,這些內容在實際工作中你用到了多少?是不是除了面試的時候會問到,好像寫 的時候,也沒怎麼用,對吧?況且就算用到,我只要會呼叫 j a api 開發框架用的相當熟練...