Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Pseudo Code

الدرس 4 من 9 في دورة Radix Sort - سلسلة DSA على Coddy.

countingSortByDigit(array, exp):
   n = length(array)
   output = array of size n
   count = array of 10 zeros
   for each x in array:                 # إحصاء كل رقم
      count[(x / exp) % 10] += 1
   for d from 1 to 9:                   # المجاميع التراكمية -> المواقع
      count[d] += count[d - 1]
   for k from n-1 down to 0:            # الوضع من الخلف (مستقر)
      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اختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Radix Sort - سلسلة DSA