Tách biệt ra thành các hàm cho dễ hình dung. Ví dụ:
C Code:
int sosanh(struct A x, struct A y); //Hàm này trả về 1 nếu x lớn hơn y, -1 nếu x nhỏ hơn y, và 0 nếu x bằng y //Tiêu chuẩn so sánh thì tùy bạn định nghĩa. void hoandoi(struct A *x,struct A *y); //Dùng để đổi chổ 2 giá trị x và y
Rồi sau đó bạn áp dụng các phương pháp sắp xếp như bình thường, trong phương pháp đó bạn gọi tới các hàm này để thực hiện so sánh và hoán chuyển các vị trí.