1 anh chị giúp em sửa lại bài thuật toán quicksoft với, em viết trên devc++ Sun Mar 11, 2012 12:13 am
dinhthicamha
Thành viên ít chịu khó
cứ mỗi lần chạy vào thuật toán là chương trình báo lỗi kết thúc , các anh chị giúp em tìm hiểu nguyên nhân với, em viết theo kiểu đệ quy
#include <cstdlib>
#include <iostream>
#define maxlist 20
#define true 1
#define false 0
#include <ctime>
using namespace std;
void phahoach( int m[20], int first, int last )
{
//dieu kien khi giam hoac tang sau khi phan hoach chi con mot phan tu
if(first>= last)
return;
int i , j, x , temp;
i = first;
j = last;
x = (first + last)/2;
do
{
WHILE(m[i] < x) i++;
WHILE(m[j] > x )j--;
if( i<= j)
{
temp = m[i];
m[i] = m[j];
m[j] = temp;
i++;
j--;
}
}WHILE(i<=j);
//goi de quy
phahoach(m,first,j);
phahoach(m,i,last);
return;
}
void quicksoft( int m[20], int n )
{
phahoach(m,0, n-1);
return;
}
int main(int argc, char *argv[])
{
int a[20];
int chucnang, n ;
char c ;
do
{
cout<<"\t\t*************QUICK SORT***************"<<endl;
cout<<"\t\tcac chuc nang cua chuong trinh"<< endl;
cout<<" 1: Nhap vao so phan tu cua mang (< 20 phan tu)\t:\t"<<endl;
cout<<" 2: Quick sort"<<endl;
cout<<" 3: Duyet danh sach"<<endl;
cout<<" 4: Thoat"<<endl;
cout<<" Ban chon chuc nang :";
cin>>chucnang;
cout<<endl;
switch(chucnang)
{
case 1:
{
srand(time(0));
FOR(int i = 0 ; i < 20; i++)
{
a[i] = rand();
cout<<a[i]<<"\t";
}
cout<<"Da tao xong mang"<<endl;
break;
}
case 2:
{
quicksoft(a, 20);
break;
}
case 3:
{
FOR(int i = 0 ; i<20; i++)
{
cout<<a[i]<<"\t";
}
break;
}
}
}WHILE(chucnang != 0);
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#include <iostream>
#define maxlist 20
#define true 1
#define false 0
#include <ctime>
using namespace std;
void phahoach( int m[20], int first, int last )
{
//dieu kien khi giam hoac tang sau khi phan hoach chi con mot phan tu
if(first>= last)
return;
int i , j, x , temp;
i = first;
j = last;
x = (first + last)/2;
do
{
WHILE(m[i] < x) i++;
WHILE(m[j] > x )j--;
if( i<= j)
{
temp = m[i];
m[i] = m[j];
m[j] = temp;
i++;
j--;
}
}WHILE(i<=j);
//goi de quy
phahoach(m,first,j);
phahoach(m,i,last);
return;
}
void quicksoft( int m[20], int n )
{
phahoach(m,0, n-1);
return;
}
int main(int argc, char *argv[])
{
int a[20];
int chucnang, n ;
char c ;
do
{
cout<<"\t\t*************QUICK SORT***************"<<endl;
cout<<"\t\tcac chuc nang cua chuong trinh"<< endl;
cout<<" 1: Nhap vao so phan tu cua mang (< 20 phan tu)\t:\t"<<endl;
cout<<" 2: Quick sort"<<endl;
cout<<" 3: Duyet danh sach"<<endl;
cout<<" 4: Thoat"<<endl;
cout<<" Ban chon chuc nang :";
cin>>chucnang;
cout<<endl;
switch(chucnang)
{
case 1:
{
srand(time(0));
FOR(int i = 0 ; i < 20; i++)
{
a[i] = rand();
cout<<a[i]<<"\t";
}
cout<<"Da tao xong mang"<<endl;
break;
}
case 2:
{
quicksoft(a, 20);
break;
}
case 3:
{
FOR(int i = 0 ; i<20; i++)
{
cout<<a[i]<<"\t";
}
break;
}
}
}WHILE(chucnang != 0);
system("PAUSE");
return EXIT_SUCCESS;
}