PDA

View Full Version : سوال: sort



adonis27
شنبه 23 آذر 1392, 15:04 عصر
سلام این یه تابع مرتب سازیه من میفهممش فقط یکیم واسم گنگه

اگه میشه یکی به صورت الگوریتمی روان و ساده واسم توضیح بده


void sort(int temp[],int len)
{
int i,j,item;
for(i = len-1; i>0;i--)
for(j=0;j<i;j++)
if(temp[j]>temp[j+1])
{
item=temp[j];
temp[j]=temp[j+1];
temp[j+1]=item;
}
for(i=0;i<len;i++)
cout<<"\n"<<temp[i]<<"\n\t";
}

Faraz Mehraien
شنبه 23 آذر 1392, 19:03 عصر
ببین i,j شمارنده ومتناسب با شماره های جمله ها 2 بار (فکر کنم)می رن تا آخر آرایه و میان اول و متغبر هایی که از جمله ی بعدی خود بزرگترن رو جاهاش و با هم عوش می کنن.یه چیزی شبیه مرتب سازی حبابی.به این لینک یه سر بزن مفیده امیدوارم مفید بوده باشم.
http://fa.wikipedia.org/wiki/%D9%85%D8%B1%D8%AA%D8%A8%E2%80%8C%D8%B3%D8%A7%D8%B 2%DB%8C_%D8%AD%D8%A8%D8%A7%D8%A8%DB%8C

fahimeh1512
شنبه 23 آذر 1392, 19:26 عصر
متغیر i از اخر ارایه شروع میکنه و j از اول شروع میکنه تا موقعی هم که به i نرسه ادامه میده و مقایسه میکنه در نتیجه بار اول که j تا آخر ارایه رفت بزرگترین عنصر ارایه رفته ته ارایه قرار گرفته
تو مرحله دوم i روی یکی مونده به اخری قرار میگیره و j از اول ارایه میره به سمتش. دونه دونه عناصر رو با هم مقایسه میکنه و دومین عنصر بزرگتر ارایه رو تو خونه یکی مونده به اخر قرار میده بعد i به خونه دو تا مونده به اخر اشاره میکنه و j از اول تا i عناصر رو مقایسه میکنه...