יום רביעי, 27 ביוני 2018

ביצוע "מיון מיזוג" על מערך דו ממדי

Merge Sort על מערך דו ממדי


"Merge Sort" הוא אחד מהאלגוריתמים המפורסמים למיון מערכים.
תוכלו לקרוא עליו בהרחבה באתר של GeeksforGeeks.

נדגים עיקרון חשוב בעניין מערכים דו-ממדיים:
"מערך דו ממדי מתנהג ונשמר בזיכרון בדיוק כמו מערך חד ממדי."


לדוגמה, המערך:
[15],[22],[33]
[20],[80],[17]

נשמר בזיכרון כך:
[20],[80],[17],[15],[22],[33]

למעשה אם מערך חד ממדי לא שונה מ"מצביע", אז מערך דו ממדי לא שונה מ"מצביע למצביע".





אחרי שהבנתם, נדגים לעניין מימוש פשוט ושימושי: שליחת מערך דו ממדי לפונקציה שנכתבה עבור מערך חד ממדי.
נראה בקוד הבא שהפונקציה mergeSort שנכתבה באתר GeeksforGeeks עבור מערכים חד ממדיים,
מצליחה למיין גם מערך דו ממדי, אם ינתן לה כזה.

הקוד:
(הקוד זמין גם כאן)

יום ראשון, 24 ביוני 2018

עוד על מבוכים, הפעם עם JavaFX

יצירה קלה של מבוכים חדשים עם ממשק משתמש גרפי


פוסט זה ממשיך בנושא פתרון מבוכים.

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

הורדת קובץ הרצה
הורדת קוד מקור




סרטון הסבר: