תהייה אלגוריתמית

האזרחק

New member
תהייה אלגוריתמית

יש לי שתי רשימות של מפתחות וערכים שאני רוצה להשוות. אני רוצה לדעת עבור כל רשומה (בכל אחת משתי הרשימות) האם המפתח קיים ברשימה השניה ואם הוא קיים האם הערכים שווים. -> לכל רשומה יהיה סטאטוס "קיים בצד השני ושווה" או "קיים בצד השני ושונה" או "לא קיים בצד השני" האם יש דרך קלה יותר מאשר לרוץ על כל הרשימה הנגדית עבור כל מפתח? (אחרי מיון ושאר שיפורים אפשריים) יש משהו קיים שעושה MAPPING כזה? (שלפחות יחסוך את כתיבת הקוד)
 

itzikbs

New member
כן, זה נקרא DataSet או TypedDataSet

בהנחה שאתה שמדובר על NET. - ונראה לי שכן זהו הפורום ... ביי איציק ב.
 

האזרחק

New member
כן, אני מדבר על .NET

מה לעשות עם DataSet? ליצור שתי טבלאות ולחבר ביניהן? (איך זה עוזר לי למה שביקשתי?)
 

עידו פ

New member
בנוסף למה שהציעו

אם מדובר על 2.0, יש לך את האפשרות לעבוד עם מתודות Find ו-Exists של List (הגנרי) או של Array.
 

yonigold

New member
בעץ גיבוב אתה לא "רץ על הנגדית"

אם שתי הרשימות ממומשות כ-HASHTABLE, עליך לרוץ רק על רשימה אחת ולבדוק האם קיים ברשימה השנייה מפתח זהה (תיאורטית בזמן קבוע O(1)). אם קיים מפתח זהה, תשווה בין האובייקטים (מנגנון ההשוואה תלוי במה שאתה מאחסן שם, אתה יכול לממש EQUALS למשל). מבחינה אלגו' אתה רץ על רשימה אחת בזמן N, ובכל איטרציה אתה מחפש ברשימה השניה ערך, אתה תקבל זמן ריצה שקרוב מאוד לליניארי.
 

IgalR

New member
אם זה רשומות ב DB זה נראה כמו

left join והשוואה מחזירה את הסטטוס .
 
למעלה