順序查詢與二分查詢解析

2021-09-20 03:46:43 字數 1341 閱讀 7056

非常簡單

示例1:在成績中查詢分數是100的第乙個分數 99 86 59 63 49 100 99 78

for(int i =0 ;i示例2:在學生中查詢分數是100的第乙個學生

儲存結構可以是順序表,也可以是鍊錶。

逐個比較查詢,如果找到,返回資料或者索引,如果到最後也沒有找到,返回null

可以是在順序表中,也可以是在鍊錶中

在各個節點查詢概率相同情況下,預設查詢長度為一半長度,所以時間複雜度是t(n) = o(n);

package com.bjsxt.ds.search;

/** * 在成績中查詢分數是100的第乙個分數

* * t(n) = o(n)

* s(n) = o(1)

* @author administrator

* */

public class testsearch ;

int score = 100;

//進行查收

int index = search(scorearr,score);

//輸出結果

if(index == -1)else }

public static int search(int scorearr,int score);

system.out.println(searchloop(array, 101));

} /**

* 迴圈二分查詢,返回第一次出現該值的位置

* * @param array

* 已排序的陣列

* @param findvalue

* 需要找的值

* @return 值在陣列中的位置,從0開始。找不到返回-1

*/public static int searchloop(int array, int findvalue)

// 起始位置

int start = 0;

// 結束位置

int end = array.length - 1;

while (start <= end) else if (findvalue < middlevalue) else

} // 返回-1,即查詢失敗

return -1;

}}

使用遞迴實現折半查詢

折半查詢的時間複雜度

順序查詢與二分查詢

先上 include void printarr int a,int n void bublesort int a,int n void swap int a,int b int binarysearch int a,int n,int k int normalsearch int a,int n,...

順序查詢 二分查詢

順序查詢 適用範圍 沒有進行排序的資料序列 缺點 速度非常慢,效率為o n cpp view plain copy 在code上檢視 片派生到我的 片 實現 template type sequencesearch type begin,type end,const type searchvalue...

順序查詢與二分查詢演算法

順序查詢演算法 順序查詢是非常簡單常用的查詢演算法,基本思路 從第乙個元素m開始逐個與需要查詢的元素x進行比較,當比較到元素值相同 即m x 時返回元素m的下標,如果比較到最後都沒有找到,則返回 1。該演算法的時間複雜度為o n 如果資料量很大時查詢效率會很低。1 include23 順序查詢演算法...