目前我了解的順序表的查詢可以分為兩類,乙個是順序查詢,乙個是二分查詢。
一般而言,我們討論的都是給定關鍵字的查詢。例如乙個陣列a[6]=,我們給定乙個關鍵字為3,就可以來查詢它是否在我們的陣列中了。查詢成功後就會返回儲存關鍵資訊的位址。
順序查詢:遍歷每乙個資料,通過與關鍵字的比較來確定是否找到了。我們以查詢的長度來度量順序查詢的時間複雜度的話,其值為o(n),等概率的情況下平均查詢長度為(n+1)/2。
例:查詢4是否在陣列a[6]=中。
int
find()
,j=0
;for
(j=0
;j<
6;j++)if
(a[j]
==x)
printf
("no find");
return0;
}
二分查詢的使用前提是1、順序儲存2、表為有序表。二分查詢的時間複雜度為o(logn)。可以看出二分查詢的速度是高於順序查詢的。
二分查詢的思想是計算出中值位置,將中值位置的數與查詢的關鍵字比較,若小於關鍵字,再計算出中值位置進行比較,直到找到為止。如大於關鍵字,步驟與上面相同。
例:查詢4是否在陣列a[6]=
int
find()
,left=
0,right=
6,mid;
while
(left<=right)
return0;
}
記錄一下第一次寫部落格
目的 從畢業到現在2年多,好像沒有什麼自己的底蘊,不止一次懷疑自己是不是真的適合程式設計師這條路又找不到適合自己的,但回頭望望仔細一想,好像也會那麼一點點。身邊的程式設計師們好像都有自己的部落格,他們善於總結,善於對新的技術歸納整理成文,而我好像卻沒有這麼樣能力,所以有這個部落格的目的就是把自己平常...
記錄 第一次寫部落格
博主是西北某211在校研究生,機緣巧合之下開始學習web前端,在前端學習方面,目前還是乙個半小白。2018.9.6第一次接觸csdn部落格,接觸前端差不多快1年了,很多筆記總結沒做成電子版。現在前端基礎知識基本有底子了,還需加強基礎。目前正在學習canvas。下一階段打算繼續學習vue.js框架,以...
第一次寫部落格
今天是我第一次寫自己的部落格 感到很激動 我是乙個程式設計師 之前一直看一些關於如何學習程式語言的貼子 大家都說學習一門語言 在於積累 而積累不能都考腦子儲存起來 需要整理成乙個自己的小金庫 在這個小金庫中有我在工作開發中遇到的乙個乙個的問題 我們往往對於新的問題要花費相對較長的時間去解決,對於我 ...