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++