PDA

View Full Version : مبتدی: مشکل در تابع quick sort



esteftaats
دوشنبه 04 آذر 1392, 21:18 عصر
سلام دوستان یه تابع دارم که نمی دونم در چه حالتی خط آخر اجرا میشه.

یعنی :


quick(list,j+1,r);

چون خط یکی مونده به آخر تابع خودش رو فراخوانی می کنه پس حالتی داریم که خط آخر اجرا بشه؟


void quick (int list[], int L , int r)
{
int i,j,temp;
int pivot;
pivot=list[L];
I=L;
j=r + 1;
Do{
Do{
I++;
}while(list[i]<pivot)
Do{
j--;
}while(list[j]>pivot)
if(i<j)
swap(list[i],list[j]);
}while(i<j)
swap(list[j],pivot);
quick(list,L,i-1);
quick(list,j+1,r);
}

hadi0x7c7
سه شنبه 05 آذر 1392, 18:11 عصر
ممکنه تکه سمت راست طولش صفر بشه، که اینم موقعی اتفاق می افته که اعداد مرتب باشن و شما pivot رو عدد اخر بگیری (بزرگترین عدد).

esteftaats
چهارشنبه 06 آذر 1392, 08:11 صبح
ممکنه تکه سمت راست طولش صفر بشه، که اینم موقعی اتفاق می افته که اعداد مرتب باشن و شما pivot رو عدد اخر بگیری (بزرگترین عدد).
منظورتون از تکه سمت راست چیه؟ آرایه منظورتونه؟

مصطفی ساتکی
چهارشنبه 06 آذر 1392, 08:41 صبح
کد قرار داده شده را اصلاح کنید این چه طرز کد نوشتن ؟!!!! و syntax error هاشو هم برطرف کنید.