大話資料結構 串

2021-10-14 08:06:56 字數 1234 閱讀 5204

**串:**由零個或多個字元組成的有限序列,又名叫字串。

操作index的實現演算法:

/*  t為非空串。若主串s中第pos個字元之後存在與t相等的子串, */

/* 則返回第乙個這樣的子串在s中的位置,否則返回0 */

intindex

(string s, string t,

int pos)

}return0;

/* 若無子串與t相等,返回0 */

}

用基本陣列實現

/* 返回子串t在主串s中第pos個字元之後的位置。若不存在,則函式返回值為0。 */

/* 其中,t非空,1≤pos≤strlength(s)。 */

intindex

(string s, string t,

int pos)

else

/* 指標後退重新開始匹配 */}if

(j > t[0]

)return i-t[0]

;else

return0;

}

/* 通過計算返回子串t的next陣列。 */

void

get_next

(string t,

int*next)

else

k= next[k]

;/* 若字元不相同,則k值回溯 */

}}

/* 返回子串t在主串s中第pos個字元之後的位置。若不存在,則函式返回值為0。 */

/* t非空,1≤pos≤strlength(s)。 */

intindex_kmp

(string s, string t,

int pos)

else

/* 指標後退重新開始匹配 */}if

(j > t[0]

)return i-t[0]

;else

return0;

}

/* 求模式串t的next函式修正值並存入陣列nextval */

void

get_nextval

(string t,

int*nextval)

else

k= nextval[k]

;/* 若字元不相同,則k值回溯 */

}}

大話資料結構 串

1.串的定義 串是由0個或多個字元組成的有限序列,也叫做字串。串中 字元數目n稱為串的長度。子串 串中任意個數的連續字元組成的子串行稱為該字串的子串,包含該子串的串稱為主串。子串中的位置就是該子串第乙個字元在主串中的序號。2.串的比較 計算機的字串標準包括 ascii碼和unicode碼。其中asc...

《大話資料結構》

函式的漸進增長 我們現在來判斷一下,兩個演算法a和b哪個更好。假設兩個演算法的輸入規模都是n,演算法a要做2n 3次操作,你可以理解為先有乙個n次的迴圈,執行完成後,再有乙個n次迴圈,最後有三次賦值或運算,共2n 3次操作。演算法b要做3n 1次操作,你覺得它們誰更快呢 準確來說,答案是不一定的 當...

《大話資料結構》

常見的時間複雜度 常見的時間複雜度如下圖所示 常用的時間複雜度所耗費的時間從小到大依次是 o 1 o logn o n o nlogn o n o n 三次方 o 2 n次方 o n!o n n次方 我們前面已經談到了 o 1 常數階 o logn 對數階 o n 線性階 o n 平方階等,至於o ...