暴力列舉法解決順序查詢和蠻力字串匹配

2021-10-25 08:12:28 字數 1408 閱讀 1682

1.偽**

//順序查詢的演算法實現,用待查詢數k作限位器

//輸入乙個有n個元素的陣列a和乙個待查詢數k

//輸出第乙個等於待查詢數的位置i,沒找到則返回-1

a[n]⬅k

i⬅0while a[i]≠k do

i⬅i+1

if i2.c++實現

#include

"iostream"

#include

"stdlib.h"

//需要用隨機函式

#include

"time.h"

//需要用time函式

using namespace std;

//順序查詢

intmain()

for(

int i=

0;i<

20;i++

) cout<

cout<<

"請輸入查詢數:"

<

cin>>key;

num[21]

=key;

//提高查詢效率,把key放在陣列最後面

int j=0;

while

(num[j]

!=key)

if(j<21)

cout<<

"目標數在下標為"

<

"的位置"

<

else

cout<<

"沒有找到目標數"

<

return0;

}

3.執行截圖

1.偽**

//該演算法實現了蠻力字串匹配

//輸入乙個n個字元陣列t,代表一段文字

//乙個m個字元陣列p,代表乙個匹配串

//查詢成功則返文字中第乙個匹配串的下標,否則返回-1

for i⬅0 to m-n do

j⬅0while j2.c++實現

//蠻力字串匹配

#include

"iostream"

#include

"string.h"

#include

"cstdio"

using namespace std;

intmain()

}}if(flag==false)

cout<<

"沒有找到匹配的字串."

<

return0;

}

3.執行截圖

列舉法(蠻力思想)和回溯法列出所有彩票號碼

現在有這樣乙個問題 假設彩票號碼有七注,每一注是從1 29的數字中的乙個,每一注數字不能和其他注的重複。現在寫出所有可能的號碼。可以採用列舉法,使用蠻力的思想來解決問題。使用迴圈遍歷來輸出所有可能的結果,這種方法言簡意賅,能直接想到,但是迴圈層數過大,時間複雜度過大,執行時間較長。也可以採用試探法,...

順序查詢法和二分查詢法

方法1 def shunxu f list,temp for index,i in enumerate f list if i temp return index return none方法2 def shunxu f flist,temp for i in range len f flist if...

靜態查詢 順序查詢和折半查詢法

一 靜態查詢 只是起查詢或檢索的作用,不涉及插入 刪除,反之為動態查詢。二 順序查詢 順序查詢過程中往往設定監視哨,在查詢過程中不用每一步都檢查整個表是否查詢完畢。假設,每個元素的查詢概率相同,順序查詢成功時平均查詢長度為 n 1 2 順序查詢不成功時平均查詢長度為 n 1 4 考慮到查詢不成功的情...