Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan algoritma isihan pemilihan dalam C++

Cara menggunakan algoritma isihan pemilihan dalam C++

WBOY
WBOYasal
2023-09-21 13:28:41713semak imbas

Cara menggunakan algoritma isihan pemilihan dalam C++

Cara menggunakan algoritma isihan pemilihan dalam C++

Isihan pilihan ialah algoritma pengisihan yang mudah dan intuitif Prinsipnya adalah untuk terus memilih nilai terkecil di antara elemen yang tinggal dan meletakkannya pada penghujung urutan yang diisih. Artikel ini akan memperkenalkan cara menggunakan bahasa C++ untuk melaksanakan algoritma isihan pemilihan dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan algoritma dengan lebih baik.

Idea asas penyisihan pilihan adalah seperti berikut:

  1. Pertama, cari nilai minimum daripada elemen yang tidak diisih
  2. Tukar nilai minimum dengan elemen pertama bahagian yang tidak diisih
  3. Antara elemen yang tidak diisih; Ulangi langkah di atas sehingga pengisihan selesai.

Berikut ialah contoh kod menggunakan bahasa C++ untuk melaksanakan pengisihan pemilihan:

#include <iostream>
using namespace std;

// 选择排序函数
void selectionSort(int arr[], int n) {
    for (int i = 0; i < n-1; i++) {
        int minIndex = i; // 保存最小值的索引
        for (int j = i+1; j < n; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j; // 更新最小值的索引
            }
        }
        // 将最小值与当前位置的元素交换
        if (minIndex != i) {
            int temp = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex] = temp;
        }
    }
}

// 打印数组元素
void printArray(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
}

int main() {
    int arr[] = {64, 25, 12, 22, 11};
    int n = sizeof(arr) / sizeof(arr[0]);
    
    cout << "排序前的数组:";
    printArray(arr, n);
    
    selectionSort(arr, n);
    
    cout << "排序后的数组:";
    printArray(arr, n);
    
    return 0;
}

Jalankan kod di atas, hasil output adalah seperti berikut:

排序前的数组:64 25 12 22 11 
排序后的数组:11 12 22 25 64

Melalui contoh kod di atas, kita dapat melihat proses pelaksanaan khusus bagi algoritma pengisihan pemilihan. Kerumitan masa algoritma ini ialah O(n^2), di mana n mewakili saiz tatasusunan yang hendak diisih. Walaupun isihan pemilihan tidak cekap pada set data yang besar, ia masih merupakan algoritma pengisihan yang mudah, mudah difahami dan berkesan untuk tatasusunan kecil atau tatasusunan yang kebanyakannya tersusun.

Untuk meringkaskan, artikel ini memperkenalkan cara melaksanakan algoritma isihan pemilihan menggunakan bahasa C++ dan menyediakan contoh kod terperinci. Diharapkan pembaca dapat menguasai prinsip pelaksanaan algoritma isihan pemilihan dengan membaca artikel ini, dan dapat menggunakan algoritma ini secara fleksibel dalam pembangunan sebenar.

Atas ialah kandungan terperinci Cara menggunakan algoritma isihan pemilihan dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn