שחזורי ראיונות עבודה -> מיון מערך שמכיל 3 צבעים
  • מיון מערך שמכיל 3 צבעים
  • ע"י: שלום
    היי מהיה הדרך היעילה ביותר למין מערך שיש בו 3 צבעים , נניח שחור אדום וירוק לפי הסדר הזה תודה
  • לפני 5 שנים
    ע"י: 1_אורח_כללי
    אולי תוכלו לפרסם את הפתרון כתוב בקוד?
  • לפני 5 שנים
    ע"י: 1_אורח_כללי
    אולי תוכלו לפרסם את הפתרון כתוב בקוד? מישהו עלה על הפתרון כאשר מותר לרוץ רק פעם אחת על המערך?
  • לפני 14 שנים
    ע"י: 1_אורח_כללי
    פעם לפני שנים בראיון שאלו אותי אותה השאלה עם סיבוך נוסף: מותר לראות את הצבע של כל כדור פעם אחת בלבד, כלומר ברגע שבדקנו כדור פעם אחת לא נוכל לבדוק אותו שוב
  • לפני 14 שנים
    ע"י: מהנדסון
    פעם לפני שנים בראיון שאלו אותי אותה השאלה עם סיבוך נוסף: מותר לראות את הצבע של כל כדור פעם אחת בלבד, כלומר ברגע שבדקנו כדור פעם אחת לא נוכל לבדוק אותו שוב איך אפשר לעשות את זה?
  • לפני 14 שנים
    ע"י: 1_אורח_כללי
    באיזה חברה שאלו את זה?
  • לפני 14 שנים
    ע"י: 1_אורח_כללי
    בשיטה השניה אתה עובר על כל תא פעמיים בדיוק, בשיטה הראשונה אתה עובר על כל תא לפחות פעמיים. שתי האלגוריתמים הם בO(n) פעולות אבל בשיטה שניה אתה מבצע פחות פעולות על כל תא, לכן הקבוע של הסיבוכיות קטן יותר. -- זה לא משנה כי לא יקבלו את הפיתרון הזה. אף אחד לא באמת רוצה שתמיין כדורים ב3 צבעים. הכדורים מסמלים עצמים עם תוכן, לכן אי אפשר באמת "ליצור אותם" על המקום כמו צבע של כדור כי אתה מאבד את התוכן של העצמים. ולכן הפיתרון הראשון זה הפיתרון שירצו לשמוע..
  • לפני 14 שנים
    ע"י: 1_אורח_כללי
    השיטה הראשונה יותר יעילה בגלל שאפשר לדלג על הכדורים האדומים בריצה השניה.
  • לפני 14 שנים
    ע"י: 1_אורח_כללי
    יותר פשוט: עבור על המערך, ספור את מספר הכדורים מכל צבע. עבור על המערך שוב, תידרוס את האיברים במערך עם איברים חדשים לפי סדר הצבעים ולפי הכמות שיש לך. (כל זה בהנחה שהם לא רוצים שתשמור על האיברים עצמם, כמובן :) )
  • לפני 14 שנים
    ע"י: 1_אורח_כללי
    שלב ראשון – נעביר את כל הכדורים האדומים לתחילת המערך: א. נחזיק אינדקס A שמצביע על תחילת המערך ואינדקס B שמצביע על סוף המערך. ב. נקדם את אינדקס A לכיוון סוף המערך, עד שניתקל בכדור שאינו אדום. ג. נקדם את אינדקס B לכיוון תחילת המערך, עד שניתקל בכדור אדום. ד. נחליף בין הכדורים שמוצבעים ע"י האינדקסים. ה. נחזור על שלבים ב', ג', ו-ד', עד שאינדקס A יעבור את אינדקס B. שלב שני – באופן דומה, נעביר את כל הכדורים הירוקים לסוף המערך... סיבוכיות זמן – O(n), סיבוכיות זיכרון – O(1).