Cara Mengurutkan Array dengan qsort() di C

Cara Mengurutkan Array Dengan Qsort Di C



Penyortiran adalah operasi mendasar dalam pemrograman komputer, dan ini melibatkan pengaturan kumpulan data dalam urutan tertentu. Salah satu cara untuk mengurutkan array elemen dalam C adalah dengan menggunakan qsort() fungsi, yang merupakan bagian dari perpustakaan standar. Fungsi ini menggunakan larik, ukurannya, dan fungsi perbandingan sebagai argumen dan mengurutkan larik dalam urutan menaik secara default.

Pedoman ini mengilustrasikan pengurutan array menggunakan qsort() berfungsi dalam C dan juga membantu Anda memahaminya dengan kode contoh C.

qsort() di C

Pustaka standar C memudahkan kita dengan qsort() fungsi yang hanya digunakan untuk mengurutkan array. Ini adalah fungsi yang sangat optimal dan cepat yang dapat beroperasi dengan array tipe data apa pun.







Header-File menggunakan qsort() di C

Itu qsort() metode didefinisikan di dalam stdlib.h file header, yang harus ditentukan sebelum diimplementasikan qsort() dalam program C.



#termasuk

Deklarasi qsort()

Deklarasi dari qsort() fungsinya adalah sebagai berikut:



ruang kosong qsort ( ruang kosong * basis , jumlah_elemen , size_of_element , fungsi_perbandingan )

Parameter fungsi qsort()

Parameter dari qsort() fungsi adalah:





basis: Pointer ke elemen pertama dari array yang akan diurutkan.

jumlah_elemen: Jumlah elemen dalam array yang akan diurutkan.



size_of_element: Ukuran dalam byte dari setiap elemen dalam array.

fungsi_perbandingan: Pointer ke fungsi perbandingan yang menentukan urutan elemen.

Apa itu Fungsi Perbandingan di qsort()

Fungsi perbandingan mengambil dua parameter, keduanya bertipe const void*, yang menunjuk ke elemen yang dibandingkan. Fungsi harus mengembalikan bilangan bulat kurang dari, sama dengan, atau lebih besar dari 0, tergantung pada apakah elemen pertama harus diurutkan sebelum, pada posisi yang sama, atau setelah elemen kedua.

Bagaimana qsort Bekerja di C

Itu qsort() fungsi bekerja dengan cara berikut:

Catatan: Di sini kita sedang mempertimbangkan sebuah int arr[] = {5, 2, 8, 3, 1, 9};

1: Awalnya, fungsi qsort akan dipanggil dengan parameter berikut:

qsort ( arr , 6 , ukuran dari ( int ) , fungsi_perbandingan ) ;

di mana arr adalah pointer ke array, 6 adalah jumlah elemen dalam array, sizeof(int) adalah ukuran setiap elemen dalam array, dan fungsi perbandingan adalah fungsi yang menentukan urutan pengurutan elemen.

2: Fungsi qsort memilih elemen pivot. Katakanlah itu memilih 3 sebagai poros.

3: Fungsi qsort mempartisi array menjadi dua sub-array: {2, 1} dan {5, 8, 9}. Sub-array pertama berisi elemen yang lebih kecil atau sama dengan pivot, dan sub-array kedua berisi elemen yang lebih besar dari pivot.

4: Fungsi qsort secara rekursif memanggil dirinya sendiri pada setiap sub-array.

5: Fungsi qsort memilih pivot untuk setiap sub-array. Katakanlah ia memilih 1 dan 8 sebagai pivot.

6: Fungsi qsort mempartisi setiap sub-array menjadi dua sub-array lagi, dan secara rekursif memanggil dirinya sendiri pada masing-masing sub-array ini.

7: Fungsi qsort menggabungkan sub-array yang diurutkan kembali menjadi satu larik yang diurutkan: {1, 2} dan {5, 8, 9} menjadi {1, 2, 5, 8, 9}.

8: Seluruh array yang diurutkan dikembalikan.

Implementasi qsort dalam Pemrograman C

Kode berikut menunjukkan implementasi dari qsort fungsi dalam pemrograman C.

#termasuk

#termasuk

int membandingkan ( const ruang kosong * a1 , const ruang kosong * b1 )

{

kembali ( * ( int * ) a1 - * ( int * ) b1 ) ;

}

int utama ( )

{

int Saya = 0 , pada satu = 6 ;

int Himpunan [ ] = { 5 , 2 , 8 , 3 , 1 , 9 } ;

qsort ( Himpunan , pada satu , ukuran dari ( int ) , membandingkan ) ;

printf ( 'Elemen Array yang Diurutkan menggunakan qsort() adalah:' ) ;

untuk ( Saya = 0 ; Saya < pada satu ; Saya ++ ) {

printf ( '%D ' , Himpunan [ Saya ] ) ; }

kembali 0 ;

}

Pada kode di atas, pertama-tama dibuat fungsi pembanding dengan dua parameter a1 Dan b1 . Kemudian eksekusi dimulai dari main(). Di main, kita menginisialisasi dua variabel integer sebagai i=0 dan num=6. Kemudian kita mendeklarasikan sebuah array dengan enam elemen sebagai {5, 2, 8, 3, 1, 9} . Sesudah ini qsort() memiliki tiga parameter tipe array, parameter num memberi tahu total elemen array, ukuran(int) mengacu pada ukuran total array, dan bandingkan digunakan untuk membandingkan elemen array satu per satu. Kemudian cetak array yang diurutkan menggunakan printf() berfungsi di C

Keluaran

Kesimpulan

qsort adalah fungsi yang kuat dalam pemrograman C untuk menyortir array jenis apa pun. Ini menggunakan algoritma quicksort untuk mengurutkan elemen dalam urutan naik atau turun berdasarkan fungsi perbandingan. Panduan di atas menunjukkan kepada Anda cara mudah untuk mengimplementasikan qsort dalam pemrograman C dengan cara kerja langkah demi langkah qsort algoritma.