الگوریتمهای مرتبسازی به عنوان یکی از مفاهیم اساسی و مهم در علوم کامپیوتر و برنامهنویسی شناخته میشوند. این الگوریتمها به ترتیب مرتب کردن دادهها با هدف افزایش بهرهوری و کارایی در پردازش اطلاعات کمک میکنند. یکی از الگوریتمهای مرتبسازی ساده و مؤثر، الگوریتم مرتبسازی درجی (Insertion Sort) است. در این مقاله، به بررسی اصول و عملکرد این الگوریتم پرداخته خواهد شد.
الگوریتم مرتبسازی درجی (Insertion Sort):
الگوریتم مرتبسازی درجی به گروهی از الگوریتمهای مرتبسازی مقایسهای تعلق دارد. این الگوریتم به تدریج اعضای لیست یا آرایه ورودی را مرتب میکند. عملکرد اصلی این الگوریتم به این صورت است که از عناصر ورودی یکی یکی شروع به جدا کردن و مرتبسازی میکند و در هر مرحله عنصری از لیست را انتخاب کرده و در مکان مناسبی در لیست مرتب شده قرار میدهد.
مراحل عملکرد الگوریتم مرتبسازی درجی به شرح زیر است:
- شروع با یک لیست خالی به نام “لیست مرتبشده”.
- انتخاب عنصر اول لیست ورودی و افزودن آن به لیست مرتبشده.
- انتخاب عنصر دوم لیست ورودی.
- مقایسه عنصر دوم با عناصر لیست مرتبشده تا زمانی که عنصر دوم به مکان مناسبی در لیست مرتبشده اضافه شود.
- تکرار مراحل 3 و 4 برای سایر عناصر لیست ورودی تا زمانی که تمام عناصر در لیست مرتبشده قرار گیرند.
الگوریتم مرتبسازی درجی به دلیل سادگی و عملکرد مطلوب در مواردی که تعداد کمی عنصر برای مرتبسازی وجود دارد، مورد استفاده قرار میگیرد. با این حال، عملکرد آن در مواردی که تعداد بزرگی از عناصر باید مرتبسازی شود، کمتر بهینه است و الگوریتمهای مرتبسازی مؤثرتری مانند الگوریتمهای مرتبسازی ادغامی یا سریع ترجیح میشوند.
به منظور بهترین درک از عملکرد الگوریتم مرتبسازی درجی (Insertion Sort)، میتوانیم یک مثال ساده ارائه دهیم. در این مثال، ما یک لیست از اعداد را با استفاده از این الگوریتم مرتبسازی خواهیم کرد.
فرض کنید که میخواهیم لیست زیر را مرتب کنیم:
لیست ورودی: [7, 4, 2, 5, 1, 3]
مراحل اصلی الگوریتم به صورت زیر خواهد بود:
- ابتدا، لیست مرتبشده خالی است: []
- مرحله 1: عنصر اول لیست ورودی (7) به لیست مرتبشده اضافه میشود، بنابراین لیست مرتبشده به شکل زیر تغییر مییابد: [7]
- مرحله 2: عنصر دوم لیست ورودی (4) را با عنصرهای لیست مرتبشده مقایسه میکنیم. 4 کمتر از 7 است، بنابراین مکانی برای 4 در لیست مرتبشده پیدا میشود. لیست مرتبشده تا این لحظه به صورت زیر است: [4, 7]
- مرحله 3: عنصر بعدی لیست ورودی (2) را با عنصرهای لیست مرتبشده مقایسه میکنیم. 2 کمتر از 4 و 7 است، بنابراین 2 در ابتدا به ابتدای لیست مرتبشده اضافه میشود. لیست مرتبشده تا این لحظه به شکل زیر است: [2, 4, 7]
- مراحل بالا را برای سایر عناصر لیست ورودی نیز تکرار میکنیم.
- در نهایت، لیست ورودی به صورت کامل مرتب خواهد شد و خروجی الگوریتم مرتبسازی درجی برابر با لیست مرتبشده زیر خواهد بود:
لیست مرتبشده: [1, 2, 3, 4, 5, 7]
در این مثال، الگوریتم مرتبسازی درجی با استفاده از مقایسهها و جابهجاییهای ساده تدریجی عناصر، لیست ورودی را به صورت مرتب میکند. این یکی از نمونههای اجرایی این الگوریتم است که نشان میدهد چگونه اعداد به ترتیب مرتب میشوند.
الگوریتم مرتبسازی درجی یک الگوریتم ساده و آموزنده برای مرتبسازی دادههاست. با این حال، در مواردی که نیاز به مرتبسازی حجم زیادی از دادهها وجود دارد، بهتر است از الگوریتمهای مرتبسازی مؤثرتر استفاده شود. در نهایت، انتخاب الگوریتم مناسب برای هر وظیفه مهم است و باید با معیارهای کارایی و نیازهای مشخص ورودیها تطابق داشته باشد.
دیدگاهها