Bagaimana Menerapkan Seleksi Seleksi di C?

Diterbitkan: 2023-01-06

Sort seleksi adalah algoritma lain yang beroperasi dengan menempatkan bilangan bulat terendah array dan kemudian menugaskannya ke posisi teratas. Indeks di sebelah posisi bilangan bulat terkecil akan digunakan untuk memulai larik berikut yang harus dipindai.

Daftar isi

Contoh Seleksi sorting di C

Jika kita mengambil array dengan angka [10,2,8,4,6] yang angka terkecilnya adalah 2. Maka, kita akan menempatkan angka terkecil, yaitu 2, di posisi pertama, setelah itu array akan terlihat seperti [2,10,8,4,6]. Selanjutnya, kita akan mengambil angka terkecil berikutnya karena 2 sudah berada di posisi yang benar sekarang. Angka terkecil berikutnya adalah 4, yang akan ditempatkan di posisi kedua, setelah itu array akan dicari dengan cara yang sama hingga akhirnya terurut.

Urutan seleksi dalam C mengurutkan angka dalam urutan menaik. Dengan memodifikasi algoritme, angka dapat diatur dalam Seleksi Seleksi menurun juga dapat dilakukan dalam bahasa lain selain C, seperti Seleksi Seleksi C++ atau Seleksi Seleksi Python.

Pelajari Kursus Pengembangan Perangkat Lunak online dari Universitas top Dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Lanjutan, atau Program Magister untuk mempercepat karier Anda.

Algoritma Pengurutan Seleksi

  • Pertama, kita menetapkan elemen awal dalam urutan pemilihan menjadi minimum dan mencari elemen terkecil dalam larik untuk prosedur Algoritma Urutan Pemilihan yang benar .
  • Elemen minimum sekarang dibandingkan dengan komponen kedua. Jika elemen kedua jatuh di bawah minimum, kami akan menukarnya dan kemudian menetapkan nilai minimum pada elemen ketiga.
  • Jika tidak, kami akan melanjutkan ke elemen ketiga dan membandingkannya dengan minimum. Jika elemen kedua melebihi elemen pertama kami, kami akan menukarnya. Ulangi proses ini hingga komponen terakhir.
  • Setelah setiap iterasi, kita akan melihat bahwa nilai minimum kita telah tiba di awal daftar yang tidak disortir.
  • Kami akan mulai mengindeks dari entri pertama dari daftar yang tidak disortir untuk setiap iterasi. Sampai daftar diurutkan atau semua komponen ditempatkan dengan benar, kami akan mengulangi Langkah 1 sampai 4 beberapa kali.

Kursus & Artikel Populer tentang Rekayasa Perangkat Lunak

Program Populer
Program PG Eksekutif dalam Pengembangan Perangkat Lunak - IIIT B Program Sertifikat Blockchain - PURDUE Program Sertifikat Keamanan Siber - PURDUE MSC dalam Ilmu Komputer - IIIT B
Artikel Populer Lainnya
Gaji Insinyur Cloud di AS 2021-22 Gaji Arsitek Solusi AWS di AS Gaji Pengembang Backend di AS Gaji Pengembang Front End di AS
Gaji pengembang web di AS Pertanyaan Wawancara Scrum Master di tahun 2022 Bagaimana Memulai Karir di Keamanan Cyber ​​​​pada tahun 2022? Pilihan Karir di AS untuk Mahasiswa Teknik

Contoh berikut dengan setiap iterasi akan membantu dalam memahami proses pemilihan sortir di C secara detail–

Iterasi #1

Saya [ ] = 8,5,2,6,4

Tetapkan minimum – 8

Bandingkan i 0 dan i 1

Seperti, i 0 > i 1 , atur minimum = 5.

  • Bandingkan i 1 dan i 2

Seperti, i 1 > i 2 , atur minimum = 2.

  • Bandingkan i 2 dan i 3

Seperti, i 2 < i 3 , atur minimum= 2.

  • Bandingkan i 2 dan i 4

Seperti, i 2 < i 4 , atur minimum =2.

2 adalah bilangan terkecil dari semua elemen, kita harus menukar i 0 dan i 2

­ Iterasi #2

I [ ]= 2,5,8,6,4

Tetapkan minimal 5

  • Bandingkan i 1 dan i 2

Seperti, i 1 < i 2 , atur minimum = 5.

  • Bandingkan i 1 dan i 3

Karena i 1 < i 3, atur minimum = 5

  • Bandingkan i 1 dan i 4

Sekali lagi, i 1 < i 4 , tetapkan minimum = 4.

4 adalah elemen terkecil dalam array, jadi kita harus menukar i 1 dan i 4 .

Iterasi #3

I [ ]= 2,4,8,6,5

Tetapkan minimal 8

  • Bandingkan i 2 dan i 3

Seperti, i 2 > i 3 , atur minimum = 6.

  • Bandingkan i 3 dan i 4

Seperti, i 3 > i 4 , atur minimum = 5.

5 adalah elemen terkecil dalam array, Anda harus menukar i 2 dan i 4 .

Iterasi #4

Saya [ ] = 2,4,5,6,8

Tetapkan minimal 6

  • Bandingkan i 3 dan i 4

Karena i 3 < i 4 , tetapkan minimum = 6.

Minimum ditempatkan di tempat yang benar; dengan demikian, tidak akan terjadi pertukaran.

Contoh Pengurutan Seleksi dalam C

// Seleksi sortir di C

#termasuk <stdio.h>

// berfungsi untuk menukar posisi dua elemen

batal menukar(int *a, int *b) {

int suhu = *a;

*a = *b;

*b = suhu;

}

void seleksiSort(int array[], ukuran int) {

for (int langkah = 0; langkah < ukuran – 1; langkah++) {

int min_idx = langkah;

for (int i = langkah + 1; i < ukuran; i++) {

// Untuk mengurutkan dalam urutan menurun, ubah > menjadi < di baris ini.

// Pilih elemen minimum di setiap loop.

jika (larik[i] < larik[min_idx])

min_idx = i;

}

// letakkan min di posisi yang benar

tukar(&array[min_idx], &array[langkah]);

}

}

// fungsi untuk mencetak array

batal printArray(int array[], ukuran int) {

for (int i = 0; i < ukuran; ++i) {

printf(“%d “, larik[i]);

}

printf(“\n”);

}

// kode driver

int utama() {

int data[] = {20, 12, 10, 15, 2};

int ukuran = ukuran(data) / ukuran(data[0]);

seleksiSort(data, ukuran);

printf(“Array yang diurutkan dalam Urutan Acsending:\n”);

printArray(data, ukuran);

}

Analisis Kompleksitas Seleksi Seleksi

Input – n item input diberikan.

Keluaran – Jumlah langkah yang diperlukan untuk mengurutkan daftar.

Logika – Jika kita diberikan n item, itu akan membuat perbandingan n-1 pada lintasan pertama, perbandingan n-2 pada lintasan kedua, perbandingan n-3 pada lintasan ketiga, dan seterusnya. Akibatnya, jumlah total perbandingan dapat dihitung dengan menggunakan;

Keluaran –

(n+1) + (n+2) + (n+3) + (n+4) + …. +1

Jumlah = n(n-1)/2 yaitu, O(n²)

Karena metode sortir seleksi membutuhkan beberapa ruang memori tambahan untuk variabel sementara untuk bertukar, ia memiliki kompleksitas waktu O(n2) dan kompleksitas ruang O(1).

Seleksi Urutkan Analisis Kompleksitas Waktu

Kasus Terbaik: Untuk larik yang sebelumnya telah diurutkan, metode sortir pilihan memiliki kompleksitas waktu kasus terbaik O(n²).

Kasus Rata-Rata: Algoritme pengurutan pilihan memiliki kompleksitas waktu kasus rata-rata O(n²) saat item disusun acak, yaitu, tidak dalam urutan menaik maupun menurun.

Kasus Terburuk: Saat kita membalikkan urutan menurun array menjadi urutan menaiknya, kompleksitas waktu kasus terburuk adalah O(n²).

Kompleksitas temporal dari metode pengurutan seleksi adalah O(n²) di masing-masing dari tiga skenario. Ini karena kita harus mengidentifikasi item minimal untuk setiap tahap agar dapat mengaturnya dengan benar. Setelah menelusuri seluruh array, kami akan menemukan elemen minimal kami.

Kesimpulan

Ini mengakhiri posting blog tentang "Selection Sort In C". Anda harus memahami bahwa ini juga dapat dilakukan dalam bahasa lain, seperti Seleksi Seleksi C++ dan Seleksi Seleksi Python. Kami harap artikel ini akan membantu Anda memahami cara mengurutkan elemen di C.

Penyortiran seleksi bukan satu-satunya segmen dalam perjalanan menjadi seorang programmer. Jika Anda berharap mendapatkan dorongan yang signifikan untuk karir pengembangan perangkat lunak Anda dengan gelar profesional, upGrad ada di sini! pengembangan frontend upGrad (JavaScript, HTML, CSS), backend (NoSQL-MongoDB), dan layanan mikro, maka Anda dapat mengejar kursus Magister Sains UpGrad dalam Ilmu Komputer. Disampaikan oleh IIIT Bangalore & Status Alumni LJMU, kursus ini membantu Anda mendapatkan karir Anda sebagai insinyur perangkat lunak / pengembang full-stack dengan raksasa teknologi di seluruh dunia.

Kursus ini mencakup pengetahuan dasar alat-alat seperti Java, Spring, dan Hibernate, memperkuat keterampilan pengembangan full-stack kami untuk menjelajahi pasar kerja dengan peluang luar biasa.

Daftar untuk mempelajari lebih lanjut!

Apa arti sortir seleksi dalam struktur data?

Algoritma pengurutan langsung adalah pengurutan seleksi. Daftar ini dibagi menjadi dua bagian dalam proses penyortiran berbasis perbandingan di tempat ini, bagian yang diurutkan di ujung kiri dan bagian yang tidak disortir di ujung kanan. Daftar secara keseluruhan awalnya di bagian yang tidak disortir, dan bagian yang diurutkan kosong.

Apa pengurutan cepat di C?

Algoritme pengurutan yang dikenal sebagai Quicksort didasarkan pada strategi bagi dan taklukkan. Array dipecah menjadi subarray (elemen yang dipilih dari array) dengan memilih elemen pivot.

Apa itu seleksi 2 arah dalam C?

Saat ada dua set pernyataan—satu set untuk saat kondisi Boolean benar dan set lainnya saat salah—ini dikenal sebagai pemilihan dua arah (if/else).