Rumah > Artikel > pembangunan bahagian belakang > Melaksanakan pengisihan gabungan dalam C++ menggunakan multithreading
Kami mendapat tatasusunan integer yang tidak diisih. Tugasnya adalah untuk mengisih tatasusunan menggunakan teknik isihan gabungan yang dilaksanakan melalui pelbagai benang
Merge sort ialah teknik menyusun berdasarkan teknik bahagi dan takluk di mana kita akan membahagi tatasusunan kepada Ambil dua bahagian yang sama dan gabungkannya dengan cara yang disusun.
Menyemak sama ada terdapat elemen
Thread ialah proses ringan yang bertanggungjawab untuk melaksanakan beberapa tugas. Benang berkongsi sumber biasa untuk melaksanakan tugas secara serentak.
Multi-threading ialah pelaksanaan multitasking Kita boleh menjalankan berbilang thread pada satu pemproses untuk melaksanakan tugas secara serentak. Ia memecahkan operasi tertentu dalam satu aplikasi kepada benang yang berasingan. Setiap benang boleh berjalan selari.
Contohnya:Dalam −int arr[] = {3, 2, 1, 10, 8, 5, 7, 9 , 4}
Output− Tatasusunan yang diisih ialah: 1, 2, 3, 4, 5, 7, 8, 9, 10#🎜 #
Penjelasan- Kami mendapat tatasusunan yang tidak diisih dengan nilai integer. Sekarang kita akan mengisih tatasusunan menggunakan jenis cantuman berbilang benang.
In−int arr[] = {5, 3, 1, 45, 32, 21, 50}#🎜🎜 Output p>−Susun atur diisih ialah: 1, 3, 5, 21, 32, 45, 50
Penjelasan
−Kami memberikan tatasusunan Tidak diisih. Sekarang kita akan mengisih tatasusunan menggunakan jenis cantuman berbilang benang.Kaedah yang digunakan dalam atur cara di bawah adalah seperti berikut -
Kami akan mula menjana nombor rawak dengan menggunakan kaedah rand() dalam C++ STL .#🎜 🎜 #Cetak tatasusunan yang diisih yang disimpan dalam jenis integer arr[].
Fungsi dalaman terbatal* Sorting_Threading(void* arg)
#🎜 🎜## 🎜🎜#Isytiharkan pembolehubah sebagai int* mula kepada int baharu[mid_val - first + 1], int* last to new int[end - mid_val], temp_1 to mid_val - first + 1, temp_2 to end - mid_val, i , j , k ke dahulu.
Jika kita menjalankan kod di atas, ia akan menghasilkan output berikut
rreee#🎜 🎜#Atas ialah kandungan terperinci Melaksanakan pengisihan gabungan dalam C++ menggunakan multithreading. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!