פורסם 2006 באוקטובר 319 שנים אבל לא לחפש תו -תו... אלא דרך אחרת שאפשר למצוא האם קיימת מחרוזת כלשהיא במחרוזת אחרתת ... תודהה לכל העוניםם ...
פורסם 2006 באוקטובר 319 שנים ב- C יש לך את strstr שנמצאת ב- string.hב- C++ יש לך את find שהוא חלק מה- Class: stringלדעתי המימוש שלהם הוא בעצם חיפוש תו אחר תו.
פורסם 2006 באוקטובר 319 שנים יש מספר אלגוריתמים שלא מחייבים אותך לרוץ על כל המחרוזת, אלא רק על חלק ממנה. הם קצת מסובכים יותר מהשיטה הרגילה.באיזו מסגרת אתה צריך לממש את זה?
פורסם 2006 באוקטובר 319 שנים זה קורס מבוא, אלגוריתמים או קורס תכנות OO?ביקשו מיכם ליצור פונ שלא תעבור איבר איבר?
פורסם 2006 באוקטובר 419 שנים יש לא מעט אלגוריתמים יעילים לחיפוש מחרוזות, אבל השאלה היא האם צריך את זה יעיל (לדוגמא לצורך פרוייקט ברשתות מחשבים) או שצריך את זה פשוט (לצורך תרגיל בית בסיסי). אם צריך משהו פשוט אז תשתמש ב-strstr או ב-find.אם צריך ביצועים טובים אז יש כמה אלגוריתמים ידועים לחיפוש תת-מחרוזות:KMP (Knuth-Moris-Pratt) הוא אלגוריתם פשוט יחסית (קל להבנה ומימוש) אך יעיל, ומבוסס על הכנת טבלה המתארת את המחרוזת שאותה מחפשים. יש לו סיבוכיות של O(n) כאשר N הוא אורך המחרוזת בה מחפשים. סיבוכיות הכנת הטבלה מראש היא O(m) כאשר M הוא אורך תת-המחרוזת שאותה מחפשים.Boyer-Moore (BM) הוא אלגוריתם אחר המיועד לחיפוש מחרוזות, וגם הוא מבוסס על טבלאות.Aho-Corasick הוא אלגוריתם מבוסס מכונת מצבים אשר מאפשר לחפש ביעילות מספר תת מחרוזות במחרוזת אחת, וזאת תוך כדי מעבר בודד על הקלט. הוא דורש הרבה זכרון, והמימוש שלו מסובך יחסית.Karp-Rabin מבוסס על השוואת Hash של חלקים מהמחרוזת ל-hash של התת-מחרוזת.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.