杜衡吉
曲靖師范學院信息工程學院
計算機程序設計中查找算法效率分析
杜衡吉
曲靖師范學院信息工程學院
隨著計算機技術的發展,不斷涌現的幫助我們工作生活的軟件越來越多,這些有著專門應用場景的程序在我們的工作中會起到事半功倍的作用,減少工作人員的勞動時間,增加工作效率,為我們的生活提供便捷,但在這些實惠的背后卻有一個不得不讓人重視的現實,那就是凡事都有正反兩面,計算機日益普及的背后也會帶來一些計算機問題不斷擴散的隱患,本文主要分析計算機程序設計中的查找算法和存在的問題及優化思想。
查找算法;計算機發展;計算機程序
隨著計算機技術的高速普及,我們對于計算機的工作效率要求也水漲船高。原先零星暴露出的一些問題也就成為了一個覆蓋面極其廣泛的現象級問題,這些問題不到解決,那么就會給我們的工作生活帶來程度不一的麻煩。本文所介紹的是常見的計算機程序設計中的查找算法效率的分析,同時也會提出計算機程序設計中查詢算法現存的一些問題。
一個好的系統應該有一個高效簡潔的查找途徑,方便工作人員的操作和學習。而決定一個查找途徑是否高效的關鍵就是其內部編程的查找算法。目前常見的集中查詢算法分別是。
1.順序查詢
最簡單也是最常見的一種查詢方式,符合大眾的思維邏輯方向,其具體的操作過程就是講需要查找的關鍵字輸入進程序,程序通過將輸入的關鍵字與查找表中記錄下的已有關鍵字一一對比,從表頭查到表尾,再從表尾查到表頭,通過數據的比較,最終顯示出查找到結果。如果需要查找的資料關鍵字不是很長,而且關鍵字之間不存在順序關系的排列就建議使用這種查詢方式操作。
2.折半查詢
折半查詢又名二分查找,其工作邏輯與順訊查找有很大的不同,將等待查找的記錄關鍵字K放到整個查找表的中間位置,進行比較,如果正好相同,說明查找成功,如果出現關鍵字K比查找表小的情況,就往查找表靠前的方向進行折半查找,如果出現關鍵字K比查找表中所存關鍵字大的情況,就往查找表靠后的方向進行折半查找。因為每經過一次比較,查找范圍都縮小了一半,所以就被稱作折半查找。這種查找方式適用于需要查詢的關鍵詞可以組成查詢表,而且所有的查詢表都是按順序排列的,如果滿足這些條件就可以考慮采用折半查找這一方法來進行查找工作。
3.分塊查詢
分塊查詢實際上是順序查詢的一種變形或者說是延伸,在分塊查詢的時候需要滿足以下要求,查找表的排列順序都是分塊有序的,簡單來講就是將在查找表中所記錄下來的的內容按照關鍵字的特點分成若干個子表,需要保證的是后一子表中所記錄下的關鍵字要全部都大于前一子表中所記錄的數值,除了建立查找表之外,還需要額外再建立一個索引表,用來存儲每一個子表中存在著的最大關鍵字信息和起始位置。如果整個查詢表可以滿足分塊有序的規則,就可以考慮采用分塊查詢法。從查找速度來看,分塊查找的速度沒有折半查找算法來得快,但比順序查找算法快得多,也不需要對全部節點進行排序。當節點很多且塊數很大時,對索引表可以采用折半查找,這樣能夠進一步提高查找的速度。分塊查找由于只要求索引表是有序的,對塊內節點沒有排序要求,因此特別適合于節點動態變化的情況。當增加或減少節以及節點的關鍵碼改變時,只需將該節點調整到所在的塊即可。在空間復雜性上,分塊查找的主要代價是增加了一個輔助數組。
4.哈希查詢
是一種利用哈希函數的運算而實現的查找算法方式。哈希函數的查找邏輯是在被記錄的關鍵字與記錄數據的位置之間建立一種相互的對應關系,這種關系我們稱之為哈希函數。其優勢就是整個函數構造非常的靈活,構造方法非常多,可以采用數字分析法、直接定址法、 平方后取中值、折疊法 、除留余數法以及隨機函數法等,而且還可以根據關鍵詞的特點來進行自行的設定。
1.存在的問題
在計算機普遍應用各行各業的今天,一個算法的優劣造成的后果不僅僅是一次運算結果的對錯,而可能導致整個公司的大額損失,在日常工作與生活中,各種各樣的查詢程序為人們能夠高效工作提供了可能,但是也會存在有些時候錯誤的數據反饋給人們造成誤導,從而導致損失出現的情況。根據調查,在如今琳瑯滿目的計算機程序查詢方式中,總會出現提供搜索的關鍵詞與最終搜索出的內容完全不符的情況,這種情況在數量較小的時候還有可能被相關人員發現糾正,但一旦涉及到大宗數據交互,就很可能因為工作人員的精力有限好導致沒有被及時的發現,從而造成錯誤和損失的情況。這也是目前查詢算法所存在的一個最主要的問題,如果這個問題遲遲得不到解決的話,就會讓人失去對計算機查詢算法的信心,從而減緩了整個計算機行業的發展。查詢算法被創造出來的初衷就是為了幫助人們,如果查詢不到我們原本想要的內容,那么查詢算法的出現就失去了應有的意義。
2.查詢優化思想
早期傳統的聚集查詢算法主要關注于獲得精確的聚集統計值,然而在很多的現實應用場景中,用戶只需獲得近似的聚集結果而非精確查詢結果。針對不確定數據集的近似概率聚集查詢問題,可以根據查詢關鍵詞添加與搜索關鍵詞相關聯的詞語構建擴展查詢,從而得到更加準確的搜索結果,這種方法對于查詢內容與查詢詞語不符這一問題能夠提供有效幫助,對于查詢系統來說是一種很好的輔助查詢方式。
在社會高速發展的今天,計算機的應用己經將我們的整個生活和工作都覆蓋到了。查找功能作為計算機所有程序中的使用率非常高的一類。如何才能提高查找的工作效率就成為了一個計算機程序設計中不可回避的問題。對于計算機查找算法的優化是一個值得探索的途徑。計算機技術目前仍然處在一個不斷發展的過程中,如何推廣計算機技術的發展,使之能夠更好的為人類服務,就需要更加安全可靠的算法程序來支持,如何創造出這樣的查找算法成為了現如今擺在計算機程序算法創造者們面前一個宏大的目標。
[1]楊殿生.計算機程序設計中查找算法效率分析[J].計算機光盤軟件與應用,2014,(23):104-104,106.
[2]王意潔,李小勇,祁亞斐,孫偉東.不確定數據查詢技術研究[J].計算機研究與發展,2012,49(7):1460-1466.