Rumah > pembangunan bahagian belakang > C++ > Program C untuk pengisihan pemilihan

Program C untuk pengisihan pemilihan

PHPz
Lepaskan: 2023-08-28 13:13:05
ke hadapan
842 orang telah melayarinya

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 }

Contoh

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

Output

0 2 6 11 12 18 34 45 55 99
Salin selepas log masuk

Atas ialah kandungan terperinci Program C untuk pengisihan pemilihan. 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