有關字符串處理問題的原則

a、字符串的數據結構:如後綴數組
  a1.散列。非常快的數據結構,而且較容易實現
  a2.平衡樹。這個結構即使是在輸入不正當的情況下也有非常好的性能,並且已經優雅地打包到了C++標準模板庫set和map的大多數實現中。
  a3.後綴數組。初始化指向文本串中的每個字符的指針數組,將其排序,這樣就得到了一個後綴數組。然後你就可以掃描該數組,找到其最近的字符串或使用二分查找法查找單詞或詞組。
 b、使用庫還是定製的組件?
    C++的set、map和string使用起來都非常方便,便是其通用而強大的接口意味着其效率沒有專用的散列函數高。其他庫組件的效率很高:散列使用的strcmp,後綴數組使用的qsort。我看了一下bsearch和strcmp的庫實現,來創建馬爾科夫程序中的二分查找和wordncmp函數。 
發佈了35 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章