Rרחמים
משתמש סופר מקצוען
עיצוב גרפי
איור וציור מקצועי
מוזיקה ונגינה
עריכה תורנית
D I G I T A L
עימוד ספרים
בהינתן מערך עם N מחרוזות,
על האלגוריתם ליצור מערך חדש שתהיינה בו רק מחרוזות ייחודיות,
מה הן מחרוזות ייחודיות? כל מחרוזת שלא קיימת בתוך מחרוזת אחרת במערך.
כלומר אם יש כמה מחרוזות זהות יש להשאיר רק אחת מהן, אבל לא רק זאת, אלא גם מחרוזת קצרה שנמצאת בתוך מחרוזת ארוכה - יש להשאיר רק את הארוכה.
האלגוריתם הכי פשוט הוא לעבור בלולאה ולבדוק כל מחרוזת מול האחרות, כך שיתקבלו N * N - 1 בדיקות.
ובמערך של כמה מיליונים זה יכול לקחת למחשב כמה ימי עבודה רצופים.
מה האלגוריתם הכי מהיר, ושמשתמש הכי פחות בזיכרון, כדי לפתור בעיה זו?
על האלגוריתם ליצור מערך חדש שתהיינה בו רק מחרוזות ייחודיות,
מה הן מחרוזות ייחודיות? כל מחרוזת שלא קיימת בתוך מחרוזת אחרת במערך.
כלומר אם יש כמה מחרוזות זהות יש להשאיר רק אחת מהן, אבל לא רק זאת, אלא גם מחרוזת קצרה שנמצאת בתוך מחרוזת ארוכה - יש להשאיר רק את הארוכה.
האלגוריתם הכי פשוט הוא לעבור בלולאה ולבדוק כל מחרוזת מול האחרות, כך שיתקבלו N * N - 1 בדיקות.
ובמערך של כמה מיליונים זה יכול לקחת למחשב כמה ימי עבודה רצופים.
מה האלגוריתם הכי מהיר, ושמשתמש הכי פחות בזיכרון, כדי לפתור בעיה זו?