Bagaimana Menerapkan Fungsi Sortir di C ++?



Artikel ini akan membantu Anda menjelajahi fungsi Sortir di c ++ dan dalam prosesnya memberi Anda demonstrasi mendetail tentang konsep tersebut

Penyortiran adalah salah satu fungsi paling dasar dan berguna yang diterapkan pada data. Ini bertujuan untuk mengatur data dengan cara tertentu, yang dapat meningkat atau menurun sesuai kebutuhan. Ada fungsi builtin di C ++ STL dengan nama 'sort ()' yang memungkinkan kita melakukan algoritma pengurutan dengan mudah. Pada artikel ini kita akan membahas Fungsi Sortir di C ++,

Petunjuk berikut akan dibahas dalam artikel ini:





pl tutorial sql untuk pemula dengan contoh

Pindah dengan artikel ini tentang fungsi Sortir di C ++

Menyortir ( ) fungsi

Ini adalah fungsi built-in dari file header algoritma yang digunakan untuk mengurutkan kontainer seperti array, vektor dalam urutan yang ditentukan. Secara internal, fungsi ini diimplementasikan sebagai Quick-sort
Quicksort adalah algoritma bagi dan taklukkan. Quicksort pertama-tama membagi daftar besar elemen menjadi dua sub-daftar yang lebih kecil: elemen yang lebih rendah dan elemen yang lebih tinggi. Quicksort kemudian mengurutkan sub-daftar secara rekursif.



Langkah-langkahnya adalah sebagai berikut:
1. Pilih elemen acak (biasanya elemen terakhir), yang disebut poros, dari daftar.
2. Susun ulang daftar sedemikian rupa sehingga semua elemen dengan nilai yang lebih kecil dari pivot berada sebelum pivot, sementara semua elemen dengan nilai lebih besar dari pivot muncul setelahnya dan nilai yang sama dapat berjalan dengan cara apa pun. Proses ini disebut operasi partisi.
3. Urutkan secara rekursif sub-daftar elemen yang lebih kecil dan sub-daftar elemen yang lebih besar, sekali lagi pilih poros di sub-daftar dan bagi mereka.
Kasus dasar rekursi adalah daftar dengan ukuran nol atau satu, yang tidak perlu disortir dan karenanya dengan menggabungkannya kita mengurutkan daftar kita.

Quicksort dalam praktiknya lebih cepat daripada algoritme O (n log n) lainnya seperti Insertion Sort atau Bubble sort. Quicksort dapat diimplementasikan dengan algoritma partisi di tempat yang berarti keseluruhan pengurutan dapat dilakukan dengan hanya O (log n) ruang tambahan. Quicksort bukanlah jenis yang stabil.
Kompleksitasnya adalah sebagai berikut:
Kasus Terbaik - O (n log n)
Kasus Terburuk - O (n ^ 2)
Kasus Rata-rata - O (n log n)

Sintaksis:
urutkan (pertama, terakhir)
Sini,
pertama - adalah indeks (penunjuk) dari elemen pertama dalam rentang yang akan diurutkan.
terakhir - adalah indeks (penunjuk) dari elemen terakhir dalam rentang yang akan diurutkan.
Misalnya, kami ingin mengurutkan elemen array 'arr' dari posisi 1 hingga 10, kami akan menggunakan sort (arr, arr + 10) dan ini akan mengurutkan 10 elemen dalam urutan Ascending.
Nilai kembali
Tidak ada



Kompleksitas

Rata-rata kompleksitas pengurutan adalah N * log2 (N), di mana N = terakhir - pertama.

Rentang data
Objek dalam rentang [pertama, terakhir) dimodifikasi.

Pengecualian
Kelebihan dengan parameter template yang dinamai sebagai kesalahan laporan ExecutionPolicy sebagai berikut:
Jika algoritma gagal mengalokasikan memori, std :: bad_alloc dilemparkan sebagai pengecualian.
Jika eksekusi suatu fungsi dipanggil sebagai bagian dari algoritme, ia akan melontarkan pengecualian std :: terminate.

Pindah dengan artikel ini tentang fungsi Sortir di C ++

Contoh - Untuk mengurutkan data dalam urutan menaik:

#include using namespace std int main () {int array [] = {10, 35, 85, 93, 62, 77, 345, 43, 2, 10} int n = sizeof (array) / sizeof (array [0] ) // 'sizeof' memberikan ukuran total array yaitu ukuran setiap karakter * no. karakter // jadi untuk mendapatkan no. dari karakter // kita membagi sizeof (array) dengan ukuran salah satu karakter dari array // ini dia array [0] sort (array, array + n) cout<< 'nArray after sorting using ' 'default sort is : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Keluaran:

Output- Fungsi Sortir di C ++ - Edureka

Penjelasan

Dari contoh di atas, kita melihat fungsi sort () secara default mengurutkan array dalam urutan menaik.

Pindah dengan artikel ini tentang fungsi Sortir di C ++

Contoh - Untuk mengurutkan data dalam urutan menurun:

Untuk mengurutkan data array dalam urutan turun, kita perlu memperkenalkan parameter ketiga yang digunakan untuk menentukan urutan elemen yang akan diurutkan. Kita bisa menggunakan fungsi 'lebih besar ()' untuk mengurutkan data dalam urutan menurun.

#include using namespace std int main () {int array [] = {41, 53, 4, 459, 60, 7, 23, 4, 232, 10} int n = sizeof (array) / sizeof (array [0] ) urutkan (larik, larik + n, lebih besar ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Keluaran:

Exp l sebuah negara
Di sini fungsi sort () melakukan perbandingan dengan cara yang menempatkan elemen yang lebih besar sebelumnya.

Pindah dengan artikel ini tentang fungsi Sortir di C ++

Urutan_ parsial

C ++ STL memberi kita fungsi pengurutan parsial, fungsinya mirip dengan fungsi sort () tetapi tidak seperti fungsi sort (), fungsi ini tidak digunakan untuk mengurutkan seluruh rentang melainkan hanya digunakan untuk mengurutkan sub-bagian saja. Ini mengurutkan elemen dalam rentang [pertama, terakhir), sedemikian rupa sehingga elemen sebelum elemen tengah diurutkan dalam urutan menaik, sedangkan elemen setelah elemen tengah dibiarkan apa adanya.

Ini dapat digunakan untuk menemukan elemen terbesar jika kita menggunakan objek fungsi untuk mengurutkan posisi pertama

Contoh

#include #include #include using namespace std int main () {vector vec = {10, 45, 60, 78, 23, 21, 30} vector :: iterator iptr partial_sort (vec.begin (), vec.begin () + 1, vec.end (), lebih besar ()) iptr = vec.begin () cout<< 'The largest element is = ' << *iptr return 0 } 

Keluaran:

Penjelasan:
Kode di atas dapat digunakan untuk mencari angka terbesar dalam satu seri, untuk mencari angka terkecil dalam seri kita hanya perlu menghapus perintah yang lebih besar.

cara membuat daftar tertaut di c

Jadi kita telah mengakhiri artikel ini tentang 'Fungsi Pengurutan di C ++'. Jika Anda ingin mempelajari lebih lanjut, lihat Pelatihan Java oleh Edureka, perusahaan pembelajaran online tepercaya. Edureka's kursus dirancang untuk melatih Anda baik konsep inti dan lanjutan Java bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar blog ini dan kami akan menghubungi Anda kembali secepatnya.