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

Selection 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 sắp xếp các phần tử trong mảng một chiều bằng thuật toán Selection Sort.


Selection Sort






Selection Sort hay còn được gọi là sắp xếp chọn
Ý tưởng:

ý tưởng 1

Tìm phần tử nhỏ nhất (min) trong dãy đã cho có độ dài n, rồi đặt nó lên đầu dãy. Sau đó “lờ” nó đi, xét dãy a[] có n-1 phần tử và tìm phần tử nhỏ nhất cảu dãy đó sau đó đặt nó lên đầu dãy.Lặp lại các thao tác trên với dãy a[] cho đến khi chỉ còn 1 phần tử đang xét.

Các bước thực hiện:
  • Với i=0 trong khi i<=n làm:
    • Vitrimin = i;
    • j=i+1;
      • nếu a[j]<a[vitrimin] thì vitrimin=j;
      • Gọi hàm swap(a[j],a[vitrimin]) để đổi chỗ
  • Nếu j<n-1 thì i=i+1; lặp lại bước b ngược lại thì dừng
  • Nếu j<=i thì j=j+1; lặp lại bước i ngược lại thì dừng

Cài đặt:


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

thuật toán Selection Sort

Độ phức tạp của thuật toán là:
  • 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