民國114年 第2梯次 延期考區 電腦軟體設計(JAVA)乙級 學科

第33題

利用Knuth-Morris-Pratt 演算法在長度為m 的字串中搜尋長度為n 的字串,所需的時間複雜度 (Time Complexity)為何?

題目

利用Knuth-Morris-Pratt 演算法在長度為m 的字串中搜尋長度為n 的字串,所需的時間複雜度 (Time Complexity)為何?

  1. (1) θ(m+n)
  2. (2) θ(m)
  3. (3) θ(mn)
  4. (4) θ(n)

官方答案

(1) θ(m+n)

解析

KMP 演算法分兩階段:建立失敗函數(前綴表)耗時 θ(n),掃描主字串耗時 θ(m),總時間複雜度為 θ(m+n)。選項 2 僅計搜尋階段,選項 3 為暴力法複雜度,選項 4 僅計建表階段,均不完整。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料