با سلام


الگوریتم های زیادی برای مرتب سازی اعداد وجود داره که شاید در نگاه اول مثل هم باشن.اما تفاوت هایی بینشون هست که باعث تمایز این الگوریتم ها شده.


امشب قصد معرفی یکی از راحتترین الگوریتم های مرتب سازی به نام الگوریتم مرتب سازی انتخابی(Selection Sort) رو دارم.



روش کار برای مرتب سازی صعودی اینه که از عدد یکم (از سمت چپ) هر عدد رو با اعداد سمت راستش مقایسه میکنیم ، اگر عدد سمت راست کوچکتر بود باهم جابه جاشون میکنیم.

این کار تا زمانی ادامه داره که ما به آخرین عضو رسیده باشیم.


یه مثالو با هم مرور میکنیم.


اعداد ورودیمون عبارت اند از :

اعداد ورودی

مرحله یکم : عدد یکم که 6 هستش با 15 مقایسه میشه.چون عدد 15 بزرگتره ، پس ترتیب صعودی بودن این دو عدد رعایت شده و نیازی به جابه جایی نداریم.

عدد 6 با عدد بعدی که 3 هستش مقایسه میشه.چون ترتیب این دو عدد اشتباهه عدد 3 با عدد 6 جابه جا میشن.

حالا عدد یکم 3 هست.عدد یکم رو با عدد بعدی (31) مقایسه میکنیم.ترتیب این دو عدد رعایت شده.

عدد بعدی که 28 هست رو با 3 مقایسه میکنیم.باز هم مثل قبل ترتیب این دو عدد هم درسته و نیازی به جابه جایی نداره.

تا به اینجای کار اولین عدد در مکان خودش قرار گرفته.

مرحله دوم : مرحله ی بعدی مقایسه ی عدد دوم (15) با اعداد بعد از خودشه.چون مراحل کار دقیقا مثل هم هستن،پس کوتاهتر توضیح میدم.

تو این مرحله هم عدد دوم (15) با عدد 6 مقایسه میشه و بخاطر مرتب نبودن جابه جا میشه.

حال عدد 6 عدد دوم میشه.و به ترتیب با اعداد بعدی مقایسه میشه .اما جا به جایی ندارن.

در مراحل بعد هم به همین صورت عمل میکنیم تا به نتیجه نهایی میرسیم.


همونطور که میبینید بسیار ساده بود.

این تصویر دقیقا یک مدل انتزاعی از این مدل مرتب سازیه.

این هم پیاده سازی الگوریتم بالا با زبان سی شارپ :

دریافت کد های سی پلاس

دریافت فایل اجرایی


اسکرین شات برنامه

امیدوارم مفید بوده باشه.

فقط نظر فراموش نشه.



اوقات به کام