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

شروع موضوع توسط صدیقه عابدی ‏31 اکتبر 2007 در انجمن C و هم خانواده هایش

  1. صدیقه عابدی

    صدیقه عابدی New Member

    ارسال‌ها:
    4
    تشکر شده:
    2
    امتیاز دستاورد:
    1
    سلام
    خواهشا جواب این سوال را هم بدهید
    برنامه ای بنویسید که به کمک شیوه بازگشتی سورت کردن ارایه را انجام دهد
    با تشکر
     
  2. saalek110

    saalek110 Active Member

    ارسال‌ها:
    2,428
    تشکر شده:
    1,265
    امتیاز دستاورد:
    36
    منبع :
    http://64.233.183.104/search?q=cach...rogramming+recursive+sort&hl=en&ct=clnk&cd=45
    ----------------------------------------
    من دقیقا نمی دونم جواب سئوال شما چیه. من عبارت
    c programming recursive sort
    را سرچ کردم و در آدرس بالا کد زیر را پیدا کردم. نمی دونم جواب سئوال شما هست یا نه. من با توربو سی 4 و نیم اجراش کردم . ممکنه اینکلودها در برنامه شما نیاز باشه عوض بشه. مثلا برای تابع calloc شاید هدرش برای شما alloc.h نباشد.

    کد (Text):
    #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);
    }
    }
     
    صدیقه عابدی از این پست تشکر کرده است.
  3. صدیقه عابدی

    صدیقه عابدی New Member

    ارسال‌ها:
    4
    تشکر شده:
    2
    امتیاز دستاورد:
    1
    سلام متشکرم
     
    saalek110 از این پست تشکر کرده است.

به اشتراک بگذارید