BÀI MỚI NHẤT
Saturday, September 24, 2016

Interchange sort

Cấu trúc dữ liệu và giải thuật - Sắp xếp

Đề bài: Viết chương trình c/c++ sắp xếp các phần tử trong mảng một chiều bằng thuật toán Interchange Sort


Interchange sort

Nhận xét: 

Nhiều thuật toán sắp xếp thường được thực hiện đổi chỗ hai phần tử kề liền nhau trên suốt chiều dài của dãy  a[] ban đầu để thu được 1 dãy có thứ tự cần thực hiện “khử nghịch thế”
"Khử nghịch thế" là làm mất các phần tử không đúng vị trí

Ý tưởng:
ý tưởng 3

Một dãy tùy ý cho trước (đang lộn xộn) luôn tồn tại các nghịch thế, bao giờ cũng xuất phát từ phần từ dãy hiện hành rồi tìm tất cả các cặp nghịch thế chữa phần tử ấy. Và để sắp dãy có trật tự thì cần khử các nghịch thế đó bằng cách đổi chỗ cặp nghịch thế này.

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

  • 1.Khởi tạo i=0;
  • 2.cho j=i+1;
  • 3. Trong khi i<=n thì làm:
    • Nếu i<j mà (a[i]>a[j] thì gọi hàn swap(a[i],a[j]) để đổi chỗ 2 phần tử này
    • j=j+1;
  • 4.cho i=i+1;
    • nếu i<n lặp lại bước 2
    • ngược lại kết thúc.

Cài đặt: 





Kết quả khi chạy chương trình

thuật toán Interchange sort

Độ phức tạp của thuật toán:

  • Tốt nhất: O(n(n-1)/2)
  • Xấu nhất O(n(n-1)/2)
Được viết bởi Đinh Quang Trưởng