Dưới đây là hàm (function) xử lí bài toán sắp xếp các số như đề bài, nhưng làm mẫu ở vị trí lẻ và tăng dần nhé, còn lại các kiểu sx khác thì cũng suy từ đây ra.
void InterchangeSort(int a[], int n)
{
for(int i=1; i<n; i+=2)
for(int j=i+2; j<n; j+=2)
if (a[i]>a[j])
change(a[i],a[j]);
}
Hàm trên còn sử dụng một hàm bên ngoài đó là hàm change, hàm này có nhiệm vụ hoán đổi 2 đối truyền vào, vì sao ta phải làm 1 hàm riêng mà ko làm ngay tại đó ? Dơn giản chúng ta đang thực hiện công việc trên hàm, khi thoát khỏi hàm, mọi dữ liệu sẽ biến mất, sự thay đổi chỉ làm trong hàm chứ không lưu kết quả khi thoát ra, vì vậy ta phải thực hiện thông qua một hàm truyền đối số thông qua việc tham trị. Code hàm change như sau:
void change(int &a, int &b)
{
int c=a;
a=b;
b=c;
}
Không có nhận xét nào:
Đăng nhận xét