השוואת קבצים,
שלום, אני צריך לכתוב תוכנית שמקבלת שני קבצי טקסט שאחד מוכל בשני (כלומר באחד מהקבצים קיימים שורות שלא נמצאות בקובץ השני אבל בשני אין שורות שלא נמצאות בראשון) משווה ביניהם והפלט שלה זה קובץ שבו יש את כל השורות שמופיעות בקובץ אחד ולא בשני. (כלומר כל השורות השונות) הבעיה היא שגודל כל קובץ הוא מעל 5 מיךליון שורות, כך שהסיבוכיות פה מאוד חשובה. בשיטת BRUTE FORCE מה שנעשה זה ניקח כל שורה מקובץ אחד ונשווה אותה לכל השורות בקובץ השני. זאת סיבוכיות גבוהה מדי. הרעיון שהיה לי הוא כזה: מאחר ומותר לי להרוס את הקבצים אז אפשר להשוות שורה מול כל השורות וברגע שמוצאים שהשורה קיימת בשני הקבצים מוחקים אותה משני הקבצים, זה מוריד משמעותית את הסיבוכיות. יש למישהו עוד רעיונות להורדת הסיבוכיות? יאיר
שלום, אני צריך לכתוב תוכנית שמקבלת שני קבצי טקסט שאחד מוכל בשני (כלומר באחד מהקבצים קיימים שורות שלא נמצאות בקובץ השני אבל בשני אין שורות שלא נמצאות בראשון) משווה ביניהם והפלט שלה זה קובץ שבו יש את כל השורות שמופיעות בקובץ אחד ולא בשני. (כלומר כל השורות השונות) הבעיה היא שגודל כל קובץ הוא מעל 5 מיךליון שורות, כך שהסיבוכיות פה מאוד חשובה. בשיטת BRUTE FORCE מה שנעשה זה ניקח כל שורה מקובץ אחד ונשווה אותה לכל השורות בקובץ השני. זאת סיבוכיות גבוהה מדי. הרעיון שהיה לי הוא כזה: מאחר ומותר לי להרוס את הקבצים אז אפשר להשוות שורה מול כל השורות וברגע שמוצאים שהשורה קיימת בשני הקבצים מוחקים אותה משני הקבצים, זה מוריד משמעותית את הסיבוכיות. יש למישהו עוד רעיונות להורדת הסיבוכיות? יאיר