日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

c++和python實現(xiàn)順序查找實例_C 語言

作者:機(jī)器學(xué)習(xí)入坑者 ? 更新時間: 2022-05-14 編程語言

如何在一堆數(shù)據(jù)中找到某個數(shù)值的位置?

數(shù)值型數(shù)據(jù)作為信息的基本載體,廣泛用于各種信息的記錄,這些數(shù)據(jù)不僅需要被存儲,更需要被使用。因此,從數(shù)據(jù)庫中正確的找到目標(biāo)數(shù)據(jù),是至關(guān)重要的操作。

我們先不考慮計算機(jī)是如何完成數(shù)值查找的,你會如何從下面這張表(黑色是數(shù)值,藍(lán)色是位置索引)中找到724這個數(shù)值?

顯然,上面有序表所有的數(shù)值都按照次序進(jìn)行排列,人眼可以根據(jù)數(shù)值大小關(guān)系確定區(qū)間從而很快的找到724在133位置上。但是,當(dāng)我們面臨的是幾百萬條無序數(shù)據(jù)時,使用直覺進(jìn)行搜索就不管用了。為此,我們需要設(shè)計出算法來完成精確的搜索過程。

實際上,不管有多少條數(shù)據(jù),我們總可以通過逐一對比,進(jìn)而找到目標(biāo)數(shù)據(jù)。下面的gif顯示了一個簡單的搜索過程,目標(biāo)數(shù)值是98:

上述過程就是順序查找算法,即將目標(biāo)數(shù)值和數(shù)據(jù)庫中的每個數(shù)值進(jìn)行比較,如果相同則搜索完成,如果不同則繼續(xù)比較下一處。下面將會采用python和C++分別實現(xiàn)順序查找算法,代碼都比較簡單。

(1)python實現(xiàn)順序查找

def search(data_list, target_value):
? ? """
? ? Args:
? ? ? ? data_list: list of data
? ? ? ? target_value: desired to be searched?
? ? """
? ? # 定義索引游標(biāo)
? ? current_index = 0
? ? while current_index

(2)C++實現(xiàn)順序查找

int search(int *pointer,int dataLength, int targetValue) {
? ? /// 遍歷指針指向的數(shù)組,并防止越界
?? ?for (int index = 0; index < dataLength; index++) {
? ? ? ? ? ? /// 找到則返回位置
?? ??? ?if (pointer[index] == targetValue) {
?? ??? ??? ?return index;
?? ??? ?}
?? ?}
? ? /// 遍歷完成后找不到,則返回-1
?? ?return -1;
}

原文鏈接:https://zhuanlan.zhihu.com/p/105852576

欄目分類
最近更新