演算法的共同性質

2021-09-06 03:34:42 字數 671 閱讀 8659

我在想,演算法那麼多,是否存在一種共同的性質。

比如貪心演算法,就是整體中找出乙個部分,這個部分的最優解將組成整體的最優解。

比如1 到 100的和,我們抽取1到10為一部分,他的和也是最終和的一部分。不知道這算不是貪心演算法?

找1.。。100中能被3整除的數,也符合這個。

找1.。。100中有多少組和等於100的數。這個就不能隨便分割了。

如果隨機抽取兩個數來判斷,這樣會產生非常龐大的組合。這是最低效的演算法。

第二種方法,可以通過代數式100-a=b這個方法,順序抽取乙個數,判斷另乙個數是否在集合中。

第三種方法,通過數學公式(100-1)/2取整。

可以看出:對資料假設的不同有很大的不同。如果是排序的,並且是自然數遞增的,也就是數和數之間都有相同的關係,也就是相差1,把這些因素都考慮進去的演算法明顯比只是認為資料是隨機排列的要更加高效率。

第二個,整體分割部分並不是什麼時候都有效的。從上面第二種演算法中可以看出:當演算法的乙個引數需要搜尋整體的時候,就無法進行普通的分割。如果把資料看作一條線段,有些演算法一次只需要線段的一小節,有些演算法需要整個線段,有些演算法要多倍線段。

演算法的共同性質:

一、認識整體和部分的關係,是演算法的乙個最重要的環節。

二、對資料的假設的運用,越多越好。

三,對於細節,要注意可以用的基本運算指令,不同指令效率差很多

理想的加密演算法性質

用符號 k k k 表示完善加密 訊息機密性 不用金鑰k kk 在對稱密碼體制中 或者不用與k相匹配的私鑰 在公鑰密碼體制中 密文 k k k 不提供任何求解明文訊息m mm的密碼分析方法。金鑰保密性 密文 k k k 也許還有一些關於明文訊息m mm的已知訊息,不提供任何求解金鑰k kk 在對稱密...

異或演算法的性質和使用

異或是一種基於二進位制的位運算,用符號xor或者 表示,其運算法則是對運算子兩側數的每乙個二進位制位,同值取0,異值取1。它與布林運算的區別在於,當運算子兩側均為1時,布林運算的結果為1,異或運算的結果為0。簡單理解就是不進製加法,如1 1 0,0 0 0,1 0 1。性質 1 交換律 2 結合律 ...

網路流的基本性質與演算法

我決定繼續我的學術 數學風格,這種風格雖然有點難理解,但是定義精確,而且往往能反映出更多的性質,比語言描述往往更為簡潔。好吧,我們繼續我們的網路流的介紹。考慮乙個有向圖g v,e 其源點為 s 匯點為 t,網路流實際上可以用水流模擬,比如說在 s 點出發很多 可以理解為無限多 的流量,容易發現,由於...