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 )
#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 )
মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন