Rumah > Artikel > pembangunan bahagian belakang > Terangkan proses pengisihan pemilihan dalam bahasa C
Isihan pilihan ialah algoritma agresif yang digunakan untuk mencari nombor terkecil daripada tatasusunan dan meletakkannya di kedudukan pertama. Tatasusunan seterusnya yang akan dilalui akan bermula pada indeks, berhampiran dengan tempat nombor terkecil diletakkan.
Pilih elemen terkecil pertama dalam senarai elemen dan letakkan di kedudukan pertama.
Ulangi operasi yang sama untuk baki elemen dalam senarai sehingga semua elemen diisih.
Pertimbangkan senarai berikut -
a[2]
a[3]
a[4]
Sm = a[0] = 30 Sm
Kedua # 🎜🎜#
10 50 40 30 20
a[2]
a[4]Sm = a[1] = 50 smlaluan ketiga
10 20 40 30 50
Sm = a[2] = 40 Sm#🎜 [3] a ;sm $segi$ $segi$ 30
a[4] Terjemahan bahasa Cina ialah:
a[3] a[4] kali keempatSm = a[3] = 40 Sma[4] Prosedur
Sila rujuk langkah di bawah untuk memilih dan mengisih.
for (i=0; i<n-1; i++){ sm=i; for (j=i+1; j<n; j++){ if (a[j] < a[sm]) sm=j; } t=a[i]; a[i] = a[sm]; a[sm] = t; } }
Contoh
#include<stdio.h> int main(){ int a[50], i,j,n,t,sm; printf("enter the No: of elements in the list:</p><p>"); scanf("%d", &n); printf("enter the elements:</p><p>"); for(i=0; i<n; i++){ scanf ("%d", &a[i]); } for (i=0; i<n-1; i++){ sm=i; for (j=i+1; j<n; j++){ if (a[j] < a[sm]){ sm=j; } } t=a[i]; a[i]=a[sm]; a[sm]=t; } printf ("after selection sorting the elements are:</p><p>"); for (i=0; i<n; i++) printf("%d\t", a[i]); return 0; }#Output#🎜#Output#🎜 #Apabila melaksanakan prosedur di atas, keputusan berikut dihasilkan -
enter the No: of elements in the list: 4 enter the elements: 45 12 37 68 after selection sorting the elements are: 12 37 45 68
Atas ialah kandungan terperinci Terangkan proses pengisihan pemilihan dalam bahasa C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!