30/09/2018, 18:22
Sắp xếp theo nhiều kiểu dữ liệu và nhiều thuật toán trong C?
Chào các bạn,mình đang có 1 bài tập sắp xếp trong C. Yêu cầu xắp xếp theo nhiều kiểu dữ liệu trong struct và dùng nhiều thuật toán sắp xếp.
Ví dụ ở đây mình có 1 struct là Test gồm 2 trường dữ liệu là string Name và int a.Và gồm các hàm có trong đoạn Code(Mình đang chỉ thử 1 thuật toán sắp xếp và mới chỉ sắp xếp theo 2 kiểu dữ liệu).Lúc chạy thì đc nhưng mình không biết như thề đã ổn chưa(Về thuật toán) mong mọi người có những ý kiến góp ý.
int SoSanh(Test t1,Test t2,int f)
{
switch(f)
{
case 1:
{
if(t1.a > t2.a) return 1;
else
if(t1.a == t2.a) return 0;
else return -1;break;
}
case 2:
{
int r = t1.name.compare(t2.name);
if(r > 0) return 1;
else{
if(r == 0) return 0;
else return -1;break;
}
}
}
}
int SapXep(Test ds[],int n,int f1)
{
for(int i = 0 ; i < n - 1 ; i++)
{
for(int j = i + 1 ; j < n ; j++)
{
switch(f1)
{
case 1:
{
if(SoSanh(ds[i],ds[j],1) == 1)
DoiCho(ds[i],ds[j]);break;
}
case 2 :
{
if(SoSanh(ds[i],ds[j],2) == 1)
DoiCho(ds[i],ds[j]);break;
}
}
}
}
}
void SapxepA(Test ds[],int n)
{
SapXep(ds,n,1);
}
void SapxepName(Test ds[],int n)
{
SapXep(ds,n,2);
}
Bài liên quan
Trong C bạn có thể làm việc với con trỏ void*
Trong C++ bạn có thể làm việc với template
####C
####c++