saba
saba
خواندن ۱ دقیقه·۵ سال پیش

الگوریتم های مرتب سازی

  • مرتب سازی حبابی

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

مرحله صفر
مرحله صفر

از اول آرایه شروع میکنیم و خونه اول رو با دومی مقایسه میکنیم(مرحله اول).چون ۲۰ از ۱۳ بزرگتره جابجا میشن. حالا یه خونه جلوتر میریم.و خونه دوم رو با سومی مقایسه میکنیم و در صورت برقرار بودن شرط (عنصر خونه جلویی بزرگتر باشه) جابجا میشن(مرحله دوم).این روند ادامه داره تا ما به آخر آرایه برسیم.


مرحله اول
مرحله اول
مرحله دوم
مرحله دوم
مرحله سوم
مرحله سوم
مرحله چهارم
مرحله چهارم


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

چند بار باید از اول آرایه شروع کنیم؟

ببین برای هر عددی فقط یه خونه درست به شمار میره (یعنی فقط یه خونه هست که اگر اون عدد توش باشه آرایه مرتب میشه)
تو هر باری که پیمایش میکنیم فقط یه عدد جای درستشو پیدا میکنه پس برای اینکه همه جای درستشون رو پیدا کنن ۵ بار آرایه رو پیمایش میکنیم و مقایسه رو انجام میدیم.

اینم نمونه کد جاوا:

public int[] bubbleSort(int[] inputArray){ int size=inputArray.length-1; int temp=-1; if(size==1) return inputArray; for(int i=0;i<=size;i++){ for(int j=0;j<size-i;j++){ if(inputArray[j]>inputArray[j+1]){ temp=inputArray[j+1]; inputArray[j+1]=inputArray[j]; inputArray[j]=temp; } } } return inputArray; }

کد و تستش اینجا هست:)


  • مرتب سازی انتخابی:

باز هم از اول آرایه شروع میکنیم و هر بار کوچکترین عنصر رو پیدا میکنیم و میبریمش اول آرایه.

فعلا اینو داشته باشین ادامه ش تا بعد :*



مرتب سازیطراحی الگوریتمساختمان داده
شاید از این پست‌ها خوشتان بیاید