مرتب سازی انتخابی با زبان C سی همراه سورس کد
در این پست شما می توانید مرتب سازی انتخابی با زبان C سی همراه سورس کد را از ما دریافت کنید.
مرتب سازی انتخابی یا Selection Sort یکی از الگوریتم مرتب سازی میباشد که جزو دستهٔ الگوریتمهای مرتبسازی مبتنی بر مقایسه به حساب می رود. به همین دلیل اعمال آن روی مجموعهٔ بزرگی از اعداد کارا به نظر نمی رسد و به طور عمومی ضعیفتر از نوع مشابهش که مرتبساز درجی است عمل میکند. این مرتب سازی به دلیل سادگی اش قابل توجه بود است.
عملکرد این الگوریتم به این شکل است: ابتدا کوچکترین عنصر مجموعه اعداد را پیدا کرده با اولین عدد جابجا میکنیم. سپس دومین عنصر کوچکتر را پیدا کرده با دومین عدد جابجا میکنیم و این روند را برای n-1 عدد اول تکرار میکنیم. در حقیقت در هر مرحله ما لیست خود را به دو بخش تقسیم میکنیم. زیرلیست اول که قبلاً مرتب کردهایم و سایر اعضای لیست که هنوز مرتب نشده است.
در زیر مثالی برای مرتب سازی انتخابی یا Selection Sort نشان دادیم:
اعداد روبرو را که به صورت صعودی مرتب شده هستند در نظر بگیرید: 2 8 4 1 7
- در مرحلهی اول: ابتدا کل لیست از ابتدا تا آخر بررسی می شود و بزرگترین عدد با عنصر انتهای لیست نامرتب جابجا میشود.
1) 2 8 4 1 7 → 2 7 4 1 8
- در مرحلهی دوم: پیمایش از اول لیست تا عدد چهارم صورت می گیرد و بزرگترین عدد با عنصر آخری آن جابجا میشود.
2) 2 7 4 1 8 → 2 1 4 7 8
علت این که چرا عنصر پنجم بررسی نمیشود معلوم است. این عدد در مرحلهی قبل به عنوان بزرگترین عدد به آخر لیست انتقال شده است و به حتما نیاز به جابجایی ندارد.
- در مرحلهی سوم: عدد های اول تا سوم بررسی شده و بزرگترین عدد به آخر آن منتقل میشود.
3) 2 1 4 7 8 → 2 1 4 7 8
- و در مرحلهی آخر دو عنصر باقیمانده مقایسه میشوند:
4) 2 1 4 7 8 → 1 2 4 7 8
و به این ترتیب لیست مرتب میشود.
در ادامه می توانید قسمت های از کد مرتب سازی انتخابی با زبان C سی را ملاحظه کنید.
تکه کد مرتب سازی انتخابی با زبان C سی:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <span style="color: #ff0000;"><strong>جهت دریافت کد کامل این برنامه از قسمت خرید محصول اقدام کنید</strong></span> #include<conio.h> #include<stdio.h> void selectionsort( int arr[ ], int n ); int main() { clrscr(); int a[5] = {5,2,9,6,12}; selectionsort(a,5); getch(); return 0; } //*************** void selectionsort( int arr[], int n ) { int i, j, max1, temp1; for( i = n - 1 ; i > 0 ; i-- ) { //قسمت های از کد حذف شده است max1 = 0; temp1 = arr[ i ]; arr[ i ] = arr[ max1 ]; arr[ max1 ] = temp1; } } |
هیچ نظری ثبت نشده است