Sess_Kakashi
16-11-2008, 10:38
Mình đang viết chương trình để sắp xếp mảng bằng quicksort, khi chạy thử thì nó không có báo lỗi nhưng chương trình lại kô chạy ra gì cả. Mong mọi người giúp đỡ . Thanks
#include<stdio.h> //khai bao thu vien
#include<conio.h>
#include<stdlib.h>
#define MAX 10000
char *input="day_so.inp";
float a[MAX];
int n;
void qs(int l,int r)
{
float tg;
float pivot;
int i,j;
if(l<r)
{
randomize();
i=l;
j=r;
pivot=a[random(r-l+1)+1];
do
{
while(a[i]<pivot)i++;
while(a[j]>pivot)j--;
if(i<=j)
{
tg=a[i];
a[i]=a[j];
a[j]=tg;
i++;
j--;
}
}
while(i<=j);
qs(l,j);
qs(l,r);
}
}
void main()
{
clrscr();
int i;
FILE*f;
//doc du lieu tu FILE *//
f=fopen(input,"r");
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
fscanf(f,"%f",&a[i]);
fclose(f);
qs(0,n-1);
//in ra ket qua//
printf("mang sau khi sap xep la:");
for(i=0;i<=n-1;i++)
printf("%f",a[i]);
getch();
}
#include<stdio.h> //khai bao thu vien
#include<conio.h>
#include<stdlib.h>
#define MAX 10000
char *input="day_so.inp";
float a[MAX];
int n;
void qs(int l,int r)
{
float tg;
float pivot;
int i,j;
if(l<r)
{
randomize();
i=l;
j=r;
pivot=a[random(r-l+1)+1];
do
{
while(a[i]<pivot)i++;
while(a[j]>pivot)j--;
if(i<=j)
{
tg=a[i];
a[i]=a[j];
a[j]=tg;
i++;
j--;
}
}
while(i<=j);
qs(l,j);
qs(l,r);
}
}
void main()
{
clrscr();
int i;
FILE*f;
//doc du lieu tu FILE *//
f=fopen(input,"r");
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
fscanf(f,"%f",&a[i]);
fclose(f);
qs(0,n-1);
//in ra ket qua//
printf("mang sau khi sap xep la:");
for(i=0;i<=n-1;i++)
printf("%f",a[i]);
getch();
}