I can do it in O(N) time. but can it be more faster?
# | User | Rating |
---|---|---|
1 | ecnerwala | 3648 |
2 | Benq | 3580 |
3 | orzdevinwang | 3570 |
4 | cnnfls_csy | 3569 |
5 | Geothermal | 3568 |
6 | tourist | 3565 |
7 | maroonrk | 3530 |
8 | Radewoosh | 3520 |
9 | Um_nik | 3481 |
10 | jiangly | 3467 |
# | User | Contrib. |
---|---|---|
1 | maomao90 | 174 |
2 | adamant | 164 |
2 | awoo | 164 |
4 | TheScrasse | 160 |
5 | nor | 159 |
6 | maroonrk | 156 |
7 | -is-this-fft- | 150 |
8 | SecondThread | 148 |
9 | pajenegod | 145 |
10 | BledDest | 144 |
I can do it in O(N) time. but can it be more faster?
Knuth–Morris–Pratt(KMP) algorithm এর searching approach, নরমাল naive approach এর থেকে আলাদা।
Time Complixity: Naive approach O(m*n) KMP এর O(m+n)
স্বাভাবিক ভাবেই KMP algo ভাল ।
একটা জিনিষ ভোগাচ্ছিল, C++ এর string searching কি naive approach ব্যাবহার করে,নাকি KMP অথবা আরো ভাল কোন algo ব্যাবহার করে? শেষে পেলাম, "In essence if you're just looking for a substring, there is no reason to implement something like KMP because the library version will be roughly as fast as yours."
লিঙ্ক: http://old.blog.phusion.nl/…/06/efficient-substring-search…/
বুজলাম যে,string টা খুব একটা বড় না হলে , সাধারণ C++:string:find() ব্যাবহার করাই ভাল।তবে Time Complexity এর খেলা শুরু হলে naive approach আর কার্যকরী নয়, KMP এর মত algo লাগবেই।
https://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm
Name |
---|