PDA

View Full Version : سوال: مشکل با مرتب سازی درجی



mnakhaeipoor
سه شنبه 07 بهمن 1393, 15:40 عصر
سلام دوستان
من دارم کتاب دیتل دیتل جاوا رو میخونم الان رسیدم به بخش جستجو و مرتب سازی
هرچی فکر کردم و تو اینترنت هم سرچ کردم نفهمیدم مرتب سازی درجی قضیه اش چیه!
مثلا تو قطعه کد زیر :

public void sort() {
int insert;
for(int next =1;next < data.length;next++){
insert=data[next];
int moveItem=next;
while(moveItem > 0 && data[moveItem - 1] > insert){
data[moveItem]=data[moveItem -1];
moveItem--;
}
data[moveItem]=insert
}
}

من هیچچچچچچچچچچچچچچی از این کد متوجه نشدم!
ممنون میشم اگه یه توضیح کامل در این مورد بدید...

Raminab
سه شنبه 07 بهمن 1393, 21:33 عصر
سلام
http://en.wikipedia.org/wiki/Insertion_sort#mediaviewer/File:Insertion-sort-example-300px.gif
عکس متحرک ویکی پدیارو نگاه کن

حلقه ی for که شروع میشه مقدار خونه ی فعلی رو تو insert ذخیره میکنه
بعد توی حلقه while تا جایی که moveItem از اندیس 0 بزرگترباشه (چرا مساوی صفر قبول نیست؟ :لبخندساده:) "و" مقدار خونه قبلیش بزرگتر مقدار توی insert باشه جابه جایی رو انجام میده و آخرسر مقدار ذخیره شده تو insert رو توجایی که moceItem الان هست قرار میده

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