PDA

View Full Version : حلقه فور برای مرتب سازی به روش حبابی



khanomgol10002000
سه شنبه 30 بهمن 1386, 14:17 عصر
سلام
کسی می تونه توضیحی در مورد حلقه فور برای مرتب سازی حبابی به من بده؟
for i=n-1;i>0;i++
for j=0;j<i;j++
چرا حلقه اول از آخر شورع می شه و حلقه دوم از ابتدا؟کسی می تونه توضیحی در موردش به من بده

Mbt925
سه شنبه 30 بهمن 1386, 16:09 عصر
مرتب سازی حبابی رو هم میشه از اول به آخر نوشت و هم از آخر به اول.

مهم الگوریتم اه.

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

نمونه : 13542
نوع مرتب سازی : صعودی





13425
1324
123
12
1

روش اه کار به این صورته که در هربار پیمایش عنصر j ام با عنصر j+1 ام مقایسه میشه و اگه بزرگتر از اون بود ، جاش با اون عنصر عوض میشه.
این کار تا آخر لیست ادامه پیدا می کنه.

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





for (i=n-1;i>0;i--)
for (j=0;j<i;j++)

if (list[j]>list[j+1])
{
temp=list[j];
list[j]=list[j+1];
list[j+1]=temp;
}


جابه جایی عناصر به نوع مرتب کردن بستگی داره (صعودی / نزولی).

pesar irooni
چهارشنبه 01 اسفند 1386, 00:29 صبح
توجه کن برای اینکه مرتب سازی حبابی تو ذهنت بمونه در هر گذر (یعنی پایان حلقه for اول) بزرگترین ( معمولا بزرگترین اما کوچکترین هم میشه) عنصر عین یه حباب میاد روی آب و از بقیه جدا میشه. تو گذر بعد عنصر دوم بزرگ عین حباب میاد روی آب و الی آخر ...