非常簡單
示例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 順序查詢演算法...