Rumah >pembangunan bahagian belakang >C++ >Program C untuk pengisihan pemilihan
Isihan pilihan ialah algoritma agresif yang berfungsi dengan mencari nombor terkecil daripada tatasusunan dan meletakkannya pada kedudukan pertama. Tatasusunan seterusnya yang akan dilalui akan bermula pada indeks seterusnya di mana nombor terkecil berada.
Mari kita ambil contoh untuk menggambarkan konsep ini dengan lebih jelas.
Kami mempunyai tatasusunan {6, 3, 8, 12, 9} dan elemen terkecil dalam tatasusunan ini ialah 3. Jadi kita meletakkan 3 di kedudukan pertama dan selepas itu tatasusunan akan kelihatan seperti {3, 6, 8, 12, 9} . Sekarang kita akan mencari nombor terkecil sekali lagi, tetapi kali ini kita tidak akan mempertimbangkan 3 dalam carian kerana ia berada di tempatnya. Cari elemen terkecil seterusnya, 6, buat tatasusunan yang mengandungi 6 pada kedudukan kedua, dan cari melalui tatasusunan sekali lagi sehingga tatasusunan diisih.
Cara Algoritma Isih Pemilihan Berfungsi -
Algoritma Isih Pemilihan mengikut langkah-langkah berikut
Mari kita ambil tatasusunan {20, 12, 23, 55,21}
Tetapkan nilai minimum bagi elemen pertama .
Nilai min = 20
Bandingkan nilai minimum dengan elemen seterusnya dan jika kurang daripada nilai minimum tetapkan elemen itu sebagai nilai minimum. Lakukan ini sehingga akhir tatasusunan.
dibandingkan dengan 12 : 20 > 12, nilai minimum = 12
dibandingkan dengan 23 : 12 dibandingkan dengan 55: 12
dibandingkan dengan 21: 12
meletakkan nilai minimum pada kedudukan pertama (indeks 0) tatasusunan.
Array = {12, 20,23, 55, 21}
Untuk lelaran seterusnya, mula mengisih daripada elemen pertama yang tidak diisih.
Array = {12, 20,23, 55, 21}
Mulakan carian dari 20 dan letakkan elemen dengan nilai minimum seterusnya.
Lelaran 2:
nilai minimum = 20
berbanding 23: 20
berbanding 55: 20 kepada 2
nilai minimum kekal tidak berubah,
tatasusunan = {12, 20,23, 55, 21}
Lelaran 3:
nilai minimum = 23.
berbanding 55: 23
berbanding 21: 23 > 21, nilai minimum = 21
nilai minimum dipindahkan ke indeks = 2
Tatasusunan = {12, 20, 5 23}
Lelaran 4:
minimum = 55
berbanding 23: 23
minimum dipindahkan ke indeks 3 Tatasusunan = { 12 , 20 , 21 , 23 , 55 }
#include <stdio.h> int main() { int arr[10]={6,12,0,18,11,99,55,45,34,2}; int n=10; int i, j, position, swap; for (i = 0; i < (n - 1); i++) { position = i; for (j = i + 1; j < n; j++) { if (arr[position] > arr[j]) position = j; } if (position != i) { swap = arr[i]; arr[i] = arr[position]; arr[position] = swap; } } for (i = 0; i < n; i++) printf("%d\t", arr[i]); return 0; }
0 2 6 11 12 18 34 45 55 99
Atas ialah kandungan terperinci Program C untuk pengisihan pemilihan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!