سبد خرید 0

وبلاگ

پیاده سازی مرتب سازی ادغامی در #C

اگر از شما بخواهند که از میان یک لیست کوچکترین عدد را انتخاب کنید می توانید با چند بررسی شرطی آن را پیدا کنید ولی اگر از شما بخواهند که چهارمین عدد کوچکتر از لیست را انتخاب کنید در این حالت برای رسیدن به جواب باید آرایه را مرتب کنید . در سی شارپ متد Sort کار مرتب کردن آرایه ها را انجام می دهد .

الگوریتم های مختلفی برای مرتب کردن آرایه ها وجود دارد از جمله :

 Selection Sort
Insertion Sort
Bubble Sort
Counting Sort
Quick Sort

 در این مقاله قصد داریم بپردازیم به الگوریتم مرتب سازی ادغامی و توابعی را معرفی کنیم که این کار را انجام می دهند .

مرتب سازی ادغامی (Merge sort) چگونه عمل مرتب سازی را انجام می دهد؟

مرتب سازی ادغامی در مرحله اول لیست داده شده را به دو نصف تقسیم می کند و اگر نصف های بدست آمده قابل نصف شدن باشند باز هم نصف های بدست آمده را خرد می کند این روند تا جایی ادامه خواهد داشت که خانه های لیست به واحد هایی یک تایی تبدیل شوند و دیگر قابل نصف شدن نباشند . بعد از اینکه آرایه را کاملا خرد کرد دوباره آنها را بهم می چسپاند ولی قبل از اینکه خانه ها را بهم بچسپاند آن ها را با هم بررسی کرده و هر کدام از دو خانه که کوچکتر باشد سمت چپ و خانه ای که بزرگتر باشد سمت راست قرار می گیرد (در صورت مرتب سازی صعودی).بعد از مرحله اول آرایه هایی  با خانه هایی دوتایی خواهیم داشت  در  مرحله دوم آرایه هایی دوتایی بدست آمده از مرحله اول را با هم مقایسه میکند و از میان هر چهار خانه کوچکترین را انتخاب و در سمت چپ قرار می دهد (در صورت صعودی)  و این روال تا مرتب شدن کامل آرایه ادامه خواهد داشت .

عکس زیر نمایشی از مرتب سازی ادغامی می باشد :

نمونه ای از مرتب سازی ادغامی با C# :

و در نهایت برای فراخوانی و مرتب کردن آرایه :


 

اشتراک گذاری:

مطالب زیر را حتما مطالعه کنید

دیدگاهتان را بنویسید

keyboard_arrow_up