Algoritma carian corak naif untuk program C

王林
Lepaskan: 2023-09-08 13:41:02
ke hadapan
773 orang telah melayarinya

Algoritma carian corak naif untuk program C

Padanan corak dalam C - Kita perlu mencari jika rentetan wujud dalam rentetan lain, sebagai contoh, rentetan "algoritma" wujud dalam rentetan "algoritma naif". Jika ia ditemui, maka lokasinya (iaitu di mana ia terletak) dipaparkan. Kami cenderung untuk mencipta fungsi yang mengambil tatasusunan 2 aksara dan mengembalikan kedudukan jika terdapat padanan, jika tidak ia mengembalikan -1.

Input: txt = "HERE IS A NICE CAP"
   pattern = "NICE"
Output: Pattern found at index 10
Input: txt = "XYZXACAADXYZXYZX"
   pattern = "XYZX"
Output: Pattern found at index 0
   Pattern found at index 9
   Pattern found at index 12
Salin selepas log masuk

Kami sedang menyelesaikan masalah ini melalui carian mod naif. Algoritma ini berguna untuk teks yang lebih kecil. Naif ialah cara yang mudah dan tidak cekap untuk melihat tempat rentetan muncul dalam rentetan lain dengan menyemak setiap kemungkinan kedudukan yang mungkin muncul untuk melihat sama ada rentetan itu wujud.

Naif Kerumitan masa algoritma ialah O(mn), dengan m ialah saiz corak yang hendak dicari dan n ialah saiz rentetan bekas.

Carian corak ialah isu yang sangat kritikal dalam sains komputer. Setiap kali kita mencari rentetan dalam fail notepad/word atau pelayar atau pangkalan data atau beberapa maklumat, Algoritma carian corak digunakan untuk memaparkan hasil carian.

Algoritma

naif_algorithm(corak, teks)

Input#🎜🎜🎜🎜∎ 🎜#

Output

− Di mana corak muncul dalam teks

Start
   pat_len := pattern Size
   str_len := string size
   for i := 0 to (str_len - pat_len), do
      for j := 0 to pat_len, do
         if text[i+j] ≠ pattern[j], then
         break
   if j == patLen, then
   display the position i, as there pattern found
End
Salin selepas log masuk
Contoh

Demonstrasi masa nyata#🎜🎜🎜🎜🎜 Output# 🎜🎜#
#include <stdio.h>
#include <string.h>
int main (){
   char txt[] = "tutorialsPointisthebestplatformforprogrammers";
   char pat[] = "a";
   int M = strlen (pat);
   int N = strlen (txt);
   for (int i = 0; i <= N - M; i++){
      int j;
      for (j = 0; j < M; j++)
         if (txt[i + j] != pat[j])
      break;
      if (j == M)
         printf ("Pattern matches at index %d </p><p>", i);
   }
   return 0;
}
Salin selepas log masuk

Atas ialah kandungan terperinci Algoritma carian corak naif untuk program C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!