Horspool演算法C語言實現

2021-10-04 20:29:39 字數 787 閱讀 7801

#include

#include

#include

int table[

256]

;int

skip

(char

*p,int m)

return

*table;

//return the value of table

}int

horspool

(char

*p,char

*t,int m,

int n)

if(k==m)

return i-m+1;

//match successly,return the number

else

i=table[t[i]

]+i;

//fail,go on skipping

}return-1

;//finally fail return -1

}int

main()

建立移動表.

首先初始化所有的字元跳轉距離為模式文字pattern的長度,其次再從陣列下標0號開始計算它到字串的串尾元素的距離。

串尾元素不參與計算,預設為字串長度,如果在非串尾的位置出現了和串尾元素相等的元素則用那個計算出來的跳轉值覆蓋掉預設的串尾元素的跳轉值。

執行horspool函式,進行匹配。首先初始化k=0表示匹配的字元個數為0,給乙個迴圈:在滿足k如果跳出大迴圈,說明在整個文字中都不能匹配pattern,則輸出-1.結束程式。

c語言實現磁碟排程演算法 C語言實現洗牌演算法

首先看一道題目 有乙個大小為100的陣列,裡面的元素是從 1 到 100,隨機從陣列中選擇50個不重複數。用math.random 100,就可以拿到乙個 0 到 99 的隨機數,是不是重複50次就可以了?當然不是,假如,第一次隨機到5,第二次如果再一次隨機到5的話,要求是選擇不重複的數,所以要選出...

lfu演算法實現c語言 lru演算法c語言實現

a 分配頁面 b 置換演算法 c 程式訪問 d 換出頁面 正確答案 d 單選題 22.設某程序的頁訪問串為 1 3 1 2 4,工作集為 3 塊,問 按 lru 頁面替換演算法,儲存管理採取虛擬儲存技術 組成 物理記憶體 主機板上的ram 和硬碟上的 虛擬記憶體聯合組成 頁面大小 4kb 例 頁面排...

C語言實現遞迴演算法

c語言實現遞迴演算法 遞迴演算法是運用於函式呼叫中的。遞迴的概念 在乙個函式體內呼叫自身稱為函式的遞迴呼叫。遞迴呼叫的原理 需要在函式內滿足一定的條件後不在呼叫自身或者結束,或者呼叫其它函式,否則容易出現類似死迴圈的情況,程式將癱瘓。已知 f 1 1 f 0 0,fn n f n 1 f n 2 求...