資料結構與演算法(C ) 順序查詢與折半查詢

2021-08-16 18:51:42 字數 823 閱讀 1767

順序查詢:速度慢

例如:100萬個資料,平均要找50萬次

沒有排序的資料:只能順序查詢

#include

using namespace std;

int sequesearch(int *a, const int n, const int x);

int main()

;int result;

int num=7;

result=sequesearch(m,10,num);

if(result<0)

cout<<"沒找到"<  return i;

}if(i==n) return -1;

折半查詢(二分查詢):2的20 次方=100萬(就是1m)

2的30 次方=10億(就是1g)

要求資料已經排序

有趣的例子:蘭州拉麵

#include

using namespace std;

int binarysearch(int *a,const int x,const int n);

int main()

;int result;

int num=8;

result= binarysearch(x,num,10);

if(result<0)

cout<<"沒找到!"return mid;

else if(a[mid]  low=mid+1;

else if(a[mid]>x)

high=mid-1;

}return -1;

}

資料結構4 順序查詢與折半查詢

順序查詢 針對無序的資料,有序的資料可以用更高效的資料查詢方式 在無序的資料查詢中,順序查詢是最入門 最簡單的演算法,該演算法雖然簡單,但是當資料量增多時,查詢效率較低。比如在100萬資料中,平均需要查詢大約50萬次,從演算法角度來說,是很難接受的。從演算法角度來說,很自然要考慮到演算法的優化。經過...

實現折半查詢 資料結構與演算法 查詢

相關知識 折半查詢通常是針對順序儲存的線性表,線性表的結點按關鍵碼從小到大排序,後面稱之為折半查詢的順序表。為了簡化討論,假設折半查詢的順序表中每個結點只含乙個關鍵碼,關鍵碼為整數。圖 1 給出了乙個儲存了 4 個關鍵碼的折半查詢的順序表的儲存結構圖。下面描述了線性表順序儲存的一種實現方案。該實現方...

資料結構 查詢演算法(折半查詢)

當乙個順序表的元素是有序排列的,這時我們才可以使用折半查詢。我們查詢的過程是找到中間位置判斷這個位置上的值是不是目標值,若是則直接找到,若不是,判斷中間位置上的值與目標值的大小關係,若是大於目標值說明我們要查詢的目標值在前半部分,小於則說明是在後半部分,然後我們在要找的部分裡面用上面同樣的方式查詢,...