Ở đây chúng ta sẽ thấy một thuật toán sắp xếp khác được gọi là Bogo Sort. Sắp xếp này còn được gọi là sắp xếp hoán vị, sắp xếp ngu ngốc, sắp xếp chậm, v.v. Thuật toán sắp xếp này là kỹ thuật sắp xếp đặc biệt không hiệu quả. Điều này nằm trong mô hình tạo và kiểm tra. Nó liên tục tạo ra một hoán vị cho đến khi nó được sắp xếp. Quan niệm là rất thẳng về phía trước. Cho đến khi danh sách được sắp xếp, chỉ cần xáo trộn các phần tử.
Thuật toán
bogoSort (mảng, n)
Begin while the arr is not sorted, do shuffle arr done End
Ví dụ
#include<iostream> #include<cstdlib> using namespace std; bool isSorted(int arr[], int n) { //check whether the list is sorted or not while (--n > 1) if (arr[n] < arr[n - 1]) return false; return true; } void shuffle(int arr[], int n) { for (int i = 0; i < n; i++) swap(arr[i], arr[rand() % n]); } void bogoSort(int arr[], int n){ while (!isSorted(arr, n)) shuffle(arr, n); } main() { int data[] = {54, 74, 98, 5, 98, 32, 20, 13, 35, 40}; int n = sizeof(data)/sizeof(data[0]); cout << "Sorted Sequence "; bogoSort(data, n); for(int i = 0; i <n;i++){ cout << data[i] << " "; } }
Đầu ra
Sorted Sequence 5 13 20 32 35 40 54 74 98 98