Hướng dẫn selection sort python - lựa chọn phân loại python

Chào ace, bài này chúng ta sẽ tìm hiểu về một trong các thuật toán sắp xếp được sử dụng nhiều trong lập trình và thực tế nhất đó là Selection Sort, sau đây cafedev sẽ giới thiệu và chia sẻ chi tiết[khái niệm, ứng dụng của nó, code ví dụ, điểm mạnh, điểm yếu…] về Selection Sort thông qua các phần sau.Selection Sort, sau đây cafedev sẽ giới thiệu và chia sẻ chi tiết[khái niệm, ứng dụng của nó, code ví dụ, điểm mạnh, điểm yếu…] về Selection Sort thông qua các phần sau.

  • 1. Giới thiệu
  • 2. Code ví dụ trên nhiều ngôn ngữ lập trình
  • 3. Độ phức tạp
  • 4. Bài tập

Thuật toán sắp xếp lựa chọn[Selection Sort] sắp xếp một mảng bằng cách liên tục tìm phần tử tối thiểu [xét theo thứ tự tăng dần] từ phần không được sắp xếp và đặt nó ở đầu. Thuật toán duy trì hai mảng con trong một mảng nhất định.Selection Sort] sắp xếp một mảng bằng cách liên tục tìm phần tử tối thiểu [xét theo thứ tự tăng dần] từ phần không được sắp xếp và đặt nó ở đầu. Thuật toán duy trì hai mảng con trong một mảng nhất định.

1] Mảng con đã được sắp xếp.

2] Mảng con còn lại chưa được sắp xếp.

Trong mỗi lần lặp lại sắp xếp lựa chọn, phần tử tối thiểu [xét theo thứ tự tăng dần] từ mảng con chưa được sắp xếp được chọn và chuyển đến mảng con đã sắp xếp.

Ví dụ sau giải thích các bước trên:

arr [] = 64 25 12 22 11

// Tìm phần tử nhỏ nhất trong arr [0 ... 4]
// và đặt nó ở đầu
11 25 12 22 64

// Tìm phần tử nhỏ nhất trong arr [1 ... 4]
// và đặt nó ở đầu arr [1 ... 4]
11 12 25 22 64

// Tìm phần tử nhỏ nhất trong arr [2 ... 4]
// và đặt nó ở đầu arr [2 ... 4]
11 12 22 25 64

// Tìm phần tử nhỏ nhất trong arr [3 ... 4]
// và đặt nó ở đầu arr [3 ... 4]
11 12 22 25 64

Hình ảnh luồng xử lý của Selection sort:

2. Code ví dụ trên nhiều ngôn ngữ lập trình

C++

// C++ program for implementation of selection sort  
#include  
using namespace std; 
  
void swap[int *xp, int *yp]  
{  
    int temp = *xp;  
    *xp = *yp;  
    *yp = temp;  
}  
  
void selectionSort[int arr[], int n]  
{  
    int i, j, min_idx;  
  
    // One by one move boundary of unsorted subarray  
    for [i = 0; i < n-1; i++]  
    {  
        // Find the minimum element in unsorted array  
        min_idx = i;  
        for [j = i+1; j < n; j++]  
        if [arr[j] < arr[min_idx]]  
            min_idx = j;  
  
        // Swap the found minimum element with the first element  
        swap[&arr[min_idx], &arr[i]];  
    }  
}  
  
/* Function to print an array */
void printArray[int arr[], int size]  
{  
    int i;  
    for [i=0; i < size; i++]  
        cout 

Bài Viết Liên Quan

Chủ Đề