先上**:
#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 順序查詢演算法...