Search…

Interchange Sort

15/12/20201 min read
Giới thiệu, hướng dẫn hiện thực giải thuật Interchange Sort thông qua code mẫu bằng ngôn ngữ C++.

Interchange Sort

Ý tưởng

Bắt đầu từ phần tử ở vị trí đầu, tính từ vị trí đoạn chưa được sắp xếp, so sánh với các phần tử còn lại trong danh sách.

  • Trong các cặp so sánh, nếu phần tử ở vị trí đầu lớn hơn phần tử ở vị trí sau thì sẽ hoán vị.
  • Ngược lại, phần tử sau lớn hơn thì không hoán vị.

Các bước thực hiện

Bắt đầu từ vị trí đầu tiên i = 0 trong danh sách a[]

Lặp cho đến khi i < n - 1.

  • Xét phần tử tại vị trí j = i + 1
    • Lặp trong khi j < n.
      • Nếu a[i] > a[j] thì hoán đổi giá trị của của a[i]a[j].
      • j++.
  • i++.

Hiện thực

void interchangeSort(int a[], int size)
{
    for (int i = 0; i < arr.length - 1; i++) {
        for (int j = i + 1; j < arr.length; j++) {
            if (arr[i] > arr[j]) {
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }
}

Ưu và nhược điểm của Interchange Sort

Trường hợp Số lần so sánh Số lần hoán vị
Tốt nhất n * (n - 1) / 2 0
Xấu nhất n * (n - 1) / 2 n * (n - 1 ) / 2
  • Thuật toán đơn giản, dễ hiện thực.
  • Hoán vị nhiều lần.
IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024