Cara Menggunakan Fungsi stable_sort() di C++

Cara Menggunakan Fungsi Stable Sort Di C



Ada berbagai fungsi di C++ untuk mengurutkan elemen urutan dalam urutan tertentu. Mirip dengan fungsi pengurutan, stable_sort digunakan untuk mengurutkan elemen dalam rentang (pertama, terakhir). Perbedaan utama di antara mereka adalah bahwa stable_sort mempertahankan urutan relatif elemen dengan nilai yang sama.

Dalam tutorial detail ini, kami akan menunjukkan cara kerja dari stable_sort() dalam C++.

Cara Menggunakan Fungsi stable_sort() di C++

Di C++, file stable_sort() adalah algoritma perpustakaan standar yang mengatur elemen dalam urutan yang meningkat dan menjaga urutan yang sama untuk elemen yang setara. Artinya, jika dua elemen sama, elemen yang muncul pertama kali dalam wadah sebelum penyortiran akan tetap muncul pertama kali dalam daftar terurut. Fungsi ini bekerja dengan membagi penampung (array, vektor, daftar tertaut) berulang kali, mengurutkannya secara terpisah, lalu menggabungkannya untuk mendapatkan penampung yang diurutkan. Itu datang di bawah berkas tajuk.







Sintaks umum untuk menggunakan the stable_sort() dalam C++ adalah:



stable_sort ( RandomAccessIterator terlebih dahulu , RandomAccessIterator terakhir ) ;

Di sini, Pertama adalah iterator yang menunjuk ke elemen pertama dalam rentang yang akan diurutkan, dan terakhir adalah iterator yang menunjuk ke elemen setelah elemen terakhir dalam rentang yang akan diurutkan.



Itu stable_sort() fungsi menggunakan urutan tidak menurun untuk mengurutkan entri dalam rentang [pertama, terakhir], yaitu dari elemen terkecil hingga terbesar. Fungsi secara default membandingkan item melalui kurang dari operator (<).





Contoh 1

Perhatikan contoh kode di bawah ini, dalam kode ini, kita telah membuat daftar vektor dan diinisialisasi dengan beberapa nilai. Selanjutnya, kami menggunakan stable_sort() untuk mengurutkan nilai vektor yang diberikan dalam urutan menaik. Vektor yang tidak disortir dan disortir dicetak pada konsol menggunakan loop berbasis rentang.

#termasuk

#termasuk

#sertakan

menggunakan namespace std ;



int utama ( )

{

vektor < int > daftar = { 5 , 2 , 25 , 4 , 9 , 33 , 38 , 26 } ;

cout << 'Nomor sebelum menyortir:' ;

untuk setiap ( daftar. mulai ( ) , daftar. akhir ( ) , [ ] ( int X ) {

cout << X << ' ' ;

} ) ;

stable_sort ( daftar. mulai ( ) , daftar. akhir ( ) ) ;

cout << ' \N Angka setelah diurutkan: ' ;

untuk setiap ( daftar. mulai ( ) , daftar. akhir ( ) , [ ] ( int X ) {

cout << X << ' ' ;

} ) ;



kembali 0 ;

}




Contoh 2

Dalam contoh yang diberikan di bawah ini, kami telah membuat array bilangan bulat dan menginisialisasinya dengan beberapa nilai. Kemudian secara default, file stable_sort() mengurutkan elemen dalam urutan menaik:

#termasuk

#sertakan

menggunakan namespace std ;

int utama ( )

{

int Himpunan [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

int N = ukuran dari ( Himpunan ) / ukuran dari ( Himpunan [ 0 ] ) ;

cout << 'Array asli adalah: \N ' ;

untuk ( int Saya = 0 ; Saya < N ; ++ Saya ) {

cout << Himpunan [ Saya ] << ' ' ;

}

stable_sort ( Himpunan , Himpunan + N ) ;

cout << ' \N Array setelah penyortiran adalah: \N ' ;

untuk ( int Saya = 0 ; Saya < N ; ++ Saya ) {

cout << Himpunan [ Saya ] << ' ' ;

}

kembali 0 ;

}

Contoh 3

Itu stable_sort mengambil parameter ketiga untuk menentukan urutan pengurutan elemen. Pada contoh di bawah ini, kami telah menggunakan the lebih besar() berfungsi dengan stable_sort() untuk mengurutkan elemen array dalam urutan menurun

#termasuk

#sertakan

menggunakan namespace std ;

int utama ( )

{

int Himpunan [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

int N = ukuran dari ( Himpunan ) / ukuran dari ( Himpunan [ 0 ] ) ;

cout << 'Array Asli: \N ' ;

untuk ( int Saya = 0 ; Saya < N ; ++ Saya ) {

cout << Himpunan [ Saya ] << ' ' ;

}

stable_sort ( Himpunan , Himpunan + N , lebih besar < int > ( ) ) ;

cout << ' \N Larik setelah disortir: \N ' ;

untuk ( int Saya = 0 ; Saya < N ; ++ Saya ) {

cout << Himpunan [ Saya ] << ' ' ;

}

kembali 0 ;

}

Intinya

Itu stable_sort() function dalam C++ adalah algoritme pustaka standar yang digunakan untuk mengurutkan elemen dalam wadah dalam urutan yang tidak menurun sambil mempertahankan urutan relatif elemen dalam wadah dengan nilai yang sama. Itu dapat digunakan dengan wadah yang berbeda seperti array, vektor, dan daftar tertaut. Selain itu, dibutuhkan parameter ketiga untuk menentukan urutan elemen pengurutan.