PDA

مشاهده نسخه کامل : برنامه ای بنویسید که به کمک شیوه بازگشتی سورت کردن ارایه را انجام دهد



صدیقه عابدی
چهارشنبه 09 آبان 1386, 22:04
سلام
خواهشا جواب این سوال را هم بدهید
برنامه ای بنویسید که به کمک شیوه بازگشتی سورت کردن ارایه را انجام دهد
با تشکر

saalek110
چهارشنبه 09 آبان 1386, 23:01
منبع :
http://64.233.183.104/search?q=cache:592T39nbX_gJ:www.dreamincode.net/code/snippet525.htm+c+programming+recursive+sort&hl=en&ct=clnk&cd=45
----------------------------------------
من دقیقا نمی دونم جواب سئوال شما چیه. من عبارت
c programming recursive sort
را سرچ کردم و در آدرس بالا کد زیر را پیدا کردم. نمی دونم جواب سئوال شما هست یا نه. من با توربو سی 4 و نیم اجراش کردم . ممکنه اینکلودها در برنامه شما نیاز باشه عوض بشه. مثلا برای تابع calloc شاید هدرش برای شما alloc.h نباشد.


#include<stdio.h>
#include<alloc.h>

void quick(int,int);

int *array,n,i,c=0;

int main()
{

printf("Enter number of elements in the array");
scanf("%d",&n);

array= (int*) calloc(n,sizeof(int));

printf("Enter elements ");
for(int i=1;i<=n;i++)
scanf("%d",&array[i]);

quick(1,n);
printf("\n");

for(i=1;i<=n;i++)
printf("%d ",array[i]);
printf("\n %d",c);

//system("pause");
return 0;

}
void quick(int x,int y)
{
int l,k,temp;
k=x;
l=y;

if((y-x)>=1)
{
while(l>=x)
{
if(array[k]>array[l]&&k<l)
{
c++;
temp=array[l];
array[l]=array[k];
array[k]=temp;
k=l;
l--;
}
else
if(array[k]<array[l]&&k>l)
{
c++;
temp=array[l];
array[l]=array[k];
array[k]=temp;
temp=k;
k=l;
l=temp;
}
else
l--;
}
quick(x,k-1);
quick(k+1,y);
}
}

صدیقه عابدی
جمعه 11 آبان 1386, 02:45
سلام متشکرم