hash表能夠實現在o(1)時間內對資料訪問,雖然空間複雜度很高,但是時間複雜度很好。所以下面說一些使用hash的演算法。
利用hash可以實現統計字元的個數,然後在遍歷一次得到最早的那個只出現一次的字元。
注意:如果傳入的字串為null或者字串裡沒有只出現一次的字元,這兩種情況都要返回-1。
int firstnotrepeatingchar(string str) ;if(str.empty())
int len = str.size();
int i = 0;
for(i = 0; i < len; i++)
for(i = 0; i < len; i++)
if(i == len)
return -1;
}
hash表的使用
事實上不管使用陣列還是鍊錶儲存資料都會存在較大缺陷,當你使用陣列時,難於刪除和新增資料 當你使用鍊錶時難於查詢資料 因此hash表綜合了兩者的優缺點,使的查詢和新增等操作既不至於複雜也不至於簡單。因此hash表的原理可以是陣列中存鍊錶,鍊錶上存資料 簡單的建立方式如下 public class hn...
hash表 hash演算法
概念 雜湊表 hash table。也叫雜湊表 是依據關鍵碼值 key value 而直接進行訪問的 資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。給定表m,存在函式f key 對隨意給定的keyword值ke...
Hash表和Hash衝突
hash表中的元素儲存位址是通過hash函式計算出來的,當要取出指定元素的時候,直接通過hash函式計算出元素的儲存位址。有時候會出現key不同,但是通過hash函式計算出來的值相同,這個值相同意味著這兩個key要存在同一位置,這顯然不對,這就是hash衝突。hash函式有多種構造方法,常見的有直接...