資料結構複習 2 線性查詢,二分查詢

2021-09-25 03:20:05 字數 799 閱讀 3072

所用陣列參考上一章: 資料結構複習(1) myarraylist—線性表

/**

* 線性查詢 有則返回下標,否則返回-1

* * @param element

* @return

*/public

intsearch

(int element)

}return-1

;}/** * 非遞迴 二分查詢,有則返回下標,否則返回-1

* * @param element

* @return

*/public

intbinarysearch

(int element)

if(element == elements[mid]

)else

else

mid =

(begin + end)/2

;}}}

/** * 遞迴 二分查詢,有則返回下標,否則返回-1

* * @param element

* @param begin

* @param end

* @return

*/public

intbinarysearchbyrecursion

(int element,

int begin,

int end)

if(element < elements[mid]

)else

if(element > elements[mid]

)else

}

資料結構基礎 2 順序查詢 二分查詢

適用範圍 沒有進行排序的資料序列 缺點 速度非常慢,效率為o n 實現 template type sequencesearch type begin,type end,const type searchvalue throw std range error return end template ...

資料結構 二分查詢

二分查詢演算法也稱為折半搜尋 二分搜尋,是一種在有序陣列中查詢某一特定元素的搜尋演算法。搜素過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則搜素過程結束 如果某一特定元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半中查詢,而且跟開始一樣從中間元素開始比較。如果在某一步驟陣列為...

資料結構 二分查詢

總共有n個元素,漸漸跟下去就是n,n 2,n 4,n 2 k 接下來操作元素的剩餘個數 其中k就是迴圈的次數。由於你n 2 k取整後 1,即令n 2 k 1,可得k log2n,是以2為底,n的對數 所以時間複雜度可以表示o o logn public class binarysearch else...