Menu
Coddy logo textTech

פסאודו-קוד

שיעור 4 מתוך 9 בקורס מיון רדיקס – סדרת DSA של Coddy.

countingSortByDigit(array, exp):
   n = length(array)
   output = array of size n
   count = array of 10 zeros
   for each x in array:                 # tally each digit
      count[(x / exp) % 10] += 1
   for d from 1 to 9:                   # running totals -> positions
      count[d] += count[d - 1]
   for k from n-1 down to 0:            # place from the back (stable)
      d = (array[k] / exp) % 10
      count[d] -= 1
      output[count[d]] = array[k]
   return output

radixSort(array):
   max = largest value in array
   exp = 1
   while max / exp > 0:
      array = countingSortByDigit(array, exp)
      exp = exp * 10
  • exp הוא ערך המקום: 1 עבור אחדות, 10 עבור עשרות, 100 עבור מאות. (x / exp) % 10 שולף את הספרה הזו.
  • countingSortByDigit הוא מיון יציב לפי ספרה אחת: הוא סופר כמה מופעים יש מכל ספרה, הופך את הספירות למיקומים, ואז מציב את האיברים מהסוף להתחלה כדי לשמור על הסדר.
  • radixSort פשוט מריץ את המעבר הזה פעם אחת לכל ספרה, ועוצר כש-exp עובר את המספר הגדול ביותר.

נסו בעצמכם

השיעור הזה לא כולל אתגר קוד.

quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה מיון רדיקס – סדרת DSA

תרגלו בעצמכם: קומפיילר C אונליין