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