Computer >> Máy Tính >  >> Lập trình >> C ++

Sắp xếp trong C ++

Trong phần này, chúng ta sẽ xem cách thực hiện thuật toán sắp xếp trong C ++. Một mảng được sắp xếp là một mảng trong đó mỗi phần tử được sắp xếp theo một số thứ tự như số, bảng chữ cái, v.v. Có nhiều thuật toán để sắp xếp một mảng số như sắp xếp bong bóng, sắp xếp chèn, sắp xếp lựa chọn, sắp xếp hợp nhất, sắp xếp nhanh, sắp xếp theo đống v.v ... Các chi tiết khác về sắp xếp mảng bằng cách sử dụng sắp xếp lựa chọn được đưa ra bên dưới.

Sắp xếp lựa chọn là một phương pháp sắp xếp tạo ra một mảng được sắp xếp. Nó thực hiện việc tìm kiếm ngẫu nhiên phần tử nhỏ nhất trong mảng và hoán đổi nó với phần tử ở đầu phần chưa được sắp xếp.

Một chương trình triển khai một mảng được sắp xếp bằng cách sử dụng sắp xếp lựa chọn được đưa ra như sau.

Ví dụ

#include<iostream>
using namespace std;
void selectionSort(int a[], int n) {
   int i, j, min, temp;
   for (i = 0; i < n - 1; i++) {
      min = i;
      for (j = i + 1; j < n; j++)
         if (a[j] < a[min])
            min = j;
            temp = a[i];
            a[i] = a[min];
            a[min] = temp;
   }
}
int main() {
   int a[] = { 22, 91, 35, 78, 10, 8, 75, 99, 1, 67 };
   int n = sizeof(a)/ sizeof(a[0]);
   int i;
   cout<<"Given array is:"<<endl;
   for (i = 0; i < n; i++)
      cout<< a[i] <<" ";
      cout<<endl;
      selectionSort(a, n);
      printf("\nSorted array is: \n");
      for (i = 0; i < n; i++)
         cout<< a[i] <<" ";
      return 0;
}

Đầu ra

Given array is:
22 91 35 78 10 8 75 99 1 67
Sorted array is:
1 8 10 22 35 67 75 78 91 99

Trong chương trình trên, selectSort () là một hàm sắp xếp mảng a [] bằng cách sử dụng kiểu phân loại. Có hai vòng lặp for trong selectSort (). Trong mỗi lần lặp của vòng lặp for theouter, phần tử nhỏ nhất trong mảng còn lại sau i được tìm thấy và phần tử này không được hoán đổi với phần tử hiện tại là i. Điều này được lặp lại cho đến khi mảng được sắp xếp. Điều này được hiển thị bên dưới.

void selectionSort(int a[], int n) {
   int i, j, min, temp;
   for (i = 0; i < n - 1; i++) {
      min = i;
      for (j = i + 1; j < n; j++)
         if (a[j] < a[min])
            min = j;
            temp = a[i];
            a[i] = a[min];
            a[min] = temp;
   }
}

Trong hàm main (), mảng a [] được xác định. Khi đó, hàm selectSort () được gọi là mảng a [] và kích thước n của nó. Cuối cùng, mảng đã sắp xếp được hiển thị. Điều này được hiển thị bên dưới.

int main() {
   int a[] = { 22, 91, 35, 78, 10, 8, 75, 99, 1, 67 };
   int n = sizeof(a)/ sizeof(a[0]);
   int i;
   cout<<"Given array is:"<<endl;
   for (i = 0; i < n; i++)
      cout<< a[i] <<" ";
      cout<<endl;
      selectionSort(a, n);
      printf("\nSorted array is: \n");
   for (i = 0; i < n; i++)
      cout<< a[i] <<" ";
   return 0;
}