Rumah > pembangunan bahagian belakang > C++ > Terangkan proses pengisihan pemilihan dalam bahasa C

Terangkan proses pengisihan pemilihan dalam bahasa C

王林
Lepaskan: 2023-09-01 13:57:07
ke hadapan
975 orang telah melayarinya

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.

Proses pengisihan pemilihan

  • 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 -

Terangkan proses pengisihan pemilihan dalam bahasa C

rr ulang kali pertama🎜 🎜🎜#a[1]

a[2]

a[3]

a[4]

Sm = a[0] = 30 Sm
Salin selepas log masuk

Kedua # 🎜🎜#< sm $square$ $square$ 20<10 (F) $square$ $square 10 美元

10 50 40 30 20
Salin selepas log masuk

a[2] < sm $segi$ $segi$ 40 <50 (T) $segi$ 40 $segi$#🎜🎜 🎜🎜#a[3] < sm $persegi$ $ persegi$ 30 <40 (T) $persegi$ 30 Tukar a[1] dengan nilai sm Terangkan proses pengisihan pemilihan dalam bahasa C

a[4] < sm $persegi $ $persegi$ 20<30 (T) $ persegi$ 20

Sm = a[1] = 50 sm
Salin selepas log masuk
< sm $square$ $square$ 40 <50 (T) $square$ 40 $square$

laluan ketiga

< sm $square$ $ square$ 30 <40 (T) $square$ 30 将 a[1] 与 sm 值交换

< sm $square$ $square$ 20<30 (T) $ 平方$ 20

10 20 40 30 50
Salin selepas log masuk

Sm = a[2] = 40 Sm
Salin selepas log masuk
#🎜 [3] &#a ;sm $segi$ $segi$ 30 <40 (T) $segi$ $segi$ 40

a[4] < persegi$ $persegi$ 30 tukar a[2] dengan nilai smTerangkan proses pengisihan pemilihan dalam bahasa C Terjemahan bahasa Cina ialah:

a[3] < $persegi$ 40

a[4] < sm $persegi$ $persegi$ 50<40 (F) $persegi$ $persegi$ 30 Gunakan nilai sm untuk menukar a[2] #🎜🎜 #
10 20 30 40 50
Salin selepas log masuk

kali keempat

Sm = a[3] = 40 Sm
Salin selepas log masuk

a[4] < $persegi$ $persegi$ sm 50 <40 (F) persegi$ 40 $persegi$ tukar a[3] dengan nilai sm

Prosedur

Terangkan proses pengisihan pemilihan dalam bahasa CSila 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;
   }
}
Salin selepas log masuk

Contoh

Berikut ialah program C untuk teknik isihan pemilihan −

#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;
}
Salin selepas log masuk

#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
Salin selepas log masuk

Atas ialah kandungan terperinci Terangkan proses pengisihan pemilihan dalam bahasa C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan