Quantcast
Channel: CodeChef Discuss - latest questions
Viewing all articles
Browse latest Browse all 40121

QUICKSORT not working as required.

$
0
0
 #include<stdio.h>
 #include<stdlib.h>

int partition(int *a,int p, int q)
{
int key=a[q],t,i,j=q-1;
i=p;
    while(i<j){

            while(a[i]<key&&i<q)
                    i++;
            while(a[j]>key&&j>=p)
                    j--;


            if(i<j){
            t=a[i];
            a[i]=a[j];
            a[j]=t;
            }

    }
if(i>j&&j>=p){
     t=a[j];
     a[j]=a[q];
     a[q]=t;
}

return j;
 }

void quicksort(int *a,int ll, int ul){
int pos;
if(ll<ul){
    pos=partition(a,ll,ul);
    quicksort(a,ll,pos-1);
    quicksort(a,pos+1,ul);
}
}


int main(){
int  a[100],i,n;
scanf("%d",&n);
for(i=0;i<n;i++)
    scanf("%d",&a[i]);

quicksort(a,0,n-1);
for(i=0;i<n;i++)
    printf("%d  ",a[i]);

return 0;
}

Viewing all articles
Browse latest Browse all 40121

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>