資料結構與演算法Java(六) 雜湊演算法

2021-09-13 12:18:39 字數 675 閱讀 5134

將任意長度的二進位制值串對映為固定長度的二進位制值串,這個對映規則就是雜湊演算法

從雜湊值不能反推出原始資料

對輸入資料非常敏感,資料修改後的雜湊值與原來大不相同

雜湊衝突的概率要盡可能小

執行效率要盡可能高

安全加密:常用的加密演算法有md5和sha,des,aes

唯一標識資料校驗雜湊函式:雜湊函式用到的雜湊演算法一般比較簡單,更關注雜湊後的值是否能平均分布

負載均衡(常見的演算法由輪詢、隨即、加權輪詢等):如果要實現乙個會話粘滯功能(session key,也就是在同乙個客戶端上,再一次繪畫中的所有請求都路由到同乙個伺服器上)的負載均衡演算法,可通過雜湊演算法,對客戶端ip位址或者會話id計算雜湊值,將取得的雜湊值與伺服器列表的大小進行取模運算,最終得到的值就是應該被路由到的伺服器編號

資料分片分布式儲存:假設由k個機器,資料的雜湊值的範圍時[0,max],我們可將整個範圍劃分成m個小區間(m遠大於k),每個機器負責m/k個小區間。當有新機器加入時,就將某幾個小區間的資料從原來的機器中搬移到新機器,也叫一致性雜湊演算法

,可避免快取雪崩

Java資料結構與演算法 六 希爾排序

插入排序在對幾乎已經排好序的資料操作時,效率高,即可以達到線性排序的效率。但插入排序一般來說是低效的,因為插入排序每次只能將資料移動一位。system.out.println 排序之前 for int i 0 iout.print a i 希爾排序 int d a.length while true...

Java資料結構與演算法 六 希爾排序

一 希爾排序的產生 二 希爾排序是基於插入排序的以下兩點性質而提出改進方法的 插入排序在對幾乎已經排好序的資料操作時,效率高,即可以達到線性排序的效率。但插入排序一般來說是低效的,因為插入排序每次只能將資料移動一位。public static void main string args system...

Java資料結構與演算法 六 希爾排序

一 希爾排序的產生 二 希爾排序是基於插入排序的以下兩點性質而提出改進方法的 插入排序在對幾乎已經排好序的資料操作時,效率高,即可以達到線性排序的效率。但插入排序一般來說是低效的,因為插入排序每次只能將資料移動一位。public static void main string args system...