الگوریتمهای مرتبسازی یکی از مفاهیم اساسی در علوم کامپیوتر و علوم داده هستند که در پردازش و مدیریت دادهها به کار میروند. یکی از این الگوریتمها، الگوریتم مرتبسازی شمارشی است که در اینجا به بررسی این الگوریتم و نحوه عملکرد آن میپردازیم.
الگوریتم مرتبسازی شمارشی:
الگوریتم مرتبسازی شمارشی یک الگوریتم ساده و مؤثر برای مرتبسازی دادهها است، به ویژه زمانی که مقادیر دادهها محدود و مشخص هستند. این الگوریتم به این صورت عمل میکند:
-
شمارش مقادیر:
- ابتدا برای هر مقدار ممکن در دادهها یک شمارنده تعریف میکنیم.
- سپس برای هر عنصر در دادهها، شمارنده مرتبط با مقدار آن افزایش مییابد.
-
ساخت دنباله مرتب:
- حالا با استفاده از شمارندهها، میتوانیم دادهها را مرتب کنیم. برای این کار از کمک یک آرایه یا لیست جدید استفاده میشود.
-
تولید دنباله مرتب شده:
- با استفاده از شمارندهها، میتوانیم عناصر را به ترتیب صعودی یا نزولی در آرایه یا لیست جدید قرار دهیم.
مثال:
فرض کنید که میخواهیم یک لیست از اعداد صحیح را مرتب کنیم و مقادیر ممکن این اعداد بین ۱ تا ۵ باشند. لیست مورد نظر به شکل زیر باشد:
[4, 2, 1, 5, 3, 4, 1, 2]-
شمارش مقادیر:
- تعداد هر مقدار را شمارش میکنیم:
[1: 2, 2: 2, 3: 1, 4: 2, 5: 1]
- تعداد هر مقدار را شمارش میکنیم:
-
ساخت دنباله مرتب:
- با استفاده از شمارندهها یک لیست خالی ایجاد میکنیم.
-
تولید دنباله مرتب شده:
- با استفاده از شمارندهها عناصر را به ترتیب قرار میدهیم:
[1, 1, 2, 2, 3, 4, 4, 5]
- با استفاده از شمارندهها عناصر را به ترتیب قرار میدهیم:
الگوریتم مرتبسازی شمارشی به خوبی در مواردی که تعداد مقادیر ممکن کم است و دادهها توزیع یکنواختی دارند، عملکرد خوبی دارد. با این حال، در مواردی که مقادیر زیاد و یا متنوع هستند، الگوریتمهای دیگری مانند QuickSort یا MergeSort ممکن است بهترین گزینه باشند.
دیدگاهها