順序查詢與二分查詢

2021-07-07 05:08:19 字數 591 閱讀 2719

先上**:

#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, int k);

using namespace std;

int main()

else

} return 0;

}void bublesort(int *a,int n)

} }}void swap(int *a,int*b)

順序查詢的效率為 (1+2+3+...+n)/n = (1+n)/2  ==== o(n)

二分法查詢的效率為 1+2+...+log2(n) = (1+log2(n))==== o(log2(n))

log2(n)為陣列最多可以拆分的次數,也即為到達陣列一端的需要的步數。

不過二分查詢的前提是陣列有序,而順序查詢則不用 

順序查詢 二分查詢

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

順序查詢與二分查詢解析

非常簡單 示例1 在成績中查詢分數是100的第乙個分數 99 86 59 63 49 100 99 78 for int i 0 i示例2 在學生中查詢分數是100的第乙個學生 儲存結構可以是順序表,也可以是鍊錶。逐個比較查詢,如果找到,返回資料或者索引,如果到最後也沒有找到,返回null 可以是在...

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

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