Cycle Sort là một thuật toán sắp xếp tại chỗ. Nó cũng là cách sắp xếp dựa trên so sánh và hiệu quả đối với bất kỳ kỹ thuật sắp xếp tại chỗ nào khác. Nó tìm số bộ nhớ ghi tối thiểu để thực hiện các tác vụ sắp xếp.
Mức độ phức tạp của Kỹ thuật sắp xếp theo chu kỳ
- Độ phức tạp về thời gian:O (n ^ 2)
- Độ phức tạp của không gian:O (1)
Đầu vào và Đầu ra
Đầu vào:Danh sách dữ liệu chưa được sắp xếp:23 63 98 74 20 14 36 45 99 78 Đầu ra:Mảng trước khi Sắp xếp:23 63 98 74 20 14 36 45 99 78 Mảng sau khi Sắp xếp:14 20 23 36 45 63 74 78 98 99
Thuật toán
cycleSort (mảng, kích thước)
Đầu vào - Một mảng dữ liệu và tổng số trong mảng
Đầu ra - Mảng được sắp xếp
Begin for start:=0 to n - 2 do key:=array [start] location:=start for i:=start + 1 to n-1 do if array [i]Ví dụ
#includeusing namespace std; void swapping (int &a, int &b) {// hoán đổi nội dung của a và b int temp; temp =a; a =b; b =temp;} void display (int * array, int size) {for (int i =0; i > n; int arr [n]; // tạo mảng với số phần tử cho trước cout <<"Nhập các phần tử:" < > arr [i]; } cout <<"Mảng trước khi Sắp xếp:"; hiển thị (arr, n); cycleSort (arr, n); cout <<"Mảng sau khi Sắp xếp:"; display (arr, n);} Đầu ra
Nhập số phần tử:10 Nhập phần tử:23 63 98 74 20 14 36 45 99 78Mảng trước Sắp xếp:23 63 98 74 20 14 36 45 99 78Mảng sau Sắp xếp:14 20 23 36 45 63 74 78 98 99