QSort

Qsort:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define Max 1000


int partition(int arr[],int p,int r)
{
    int x, i, j, tem;
    x= arr[r];
    i= p-1;            // taking index

    for(j=p; j<= (r-1); j++){                //        give equal sign must
        if( arr[j]<= x){
            i=i+1;
           
            tem= arr[i];
            arr[i]= arr[j];
            arr[j]= tem;
        }
    }


                tem= arr[i+1];
                arr[i+1]= arr[r];
                arr[r]= tem;
return (i+1);
}

void quick( int arr[],int p,int r)
{
    if(p<=r){
        int q;
        q= partition( arr, p, r);
        quick( arr, p, q-1);
        quick( arr, q+1, r);
    }
    return ;
}



int main()
{
    int num, i,j,k, arr[Max];

    num=10;

    for(i=0;i<num;i++)
        scanf("%d",&arr[i]);

    quick( arr,0 , num-1);
   
    puts("sorted data:");
    for(i=0;i<num;i++)
        printf("%d ",arr[i]);
    printf("\n");


    return 0;
}

( read Introduction to Algorithm by Cormen )

মন্তব্যসমূহ