


Reka bentuk struktur data baris gilir untuk mendapatkan nilai minimum atau maksimum dalam masa O(1).
C++ mempunyai fail pengepala deque untuk mengendalikan sifat tindanan dan baris gilir. Dalam struktur data, menyelesaikan masalah kerumitan masa O(1) memerlukan masa yang tetap. Dengan menggunakan deque dalam program ini, kami mendapat kelebihan menggunakan kedua-dua tindanan dan baris gilir.
Dalam artikel ini, kami akan menyelesaikan struktur data baris gilir untuk mendapatkan nilai minimum atau maksimum nombor dalam masa O(1).
tatabahasa
deque<data_type> name_of_queue;
parameter
deque - Ini dikenali sebagai deque, yang memesan set item atau nombor yang setara dengan baris gilir.
data_type - Jenis data yang digunakan, seperti int, float, dll.
name_of_queue - Mana-mana nama yang diberikan kepada baris gilir, seperti ab, cd, dsb.
front()
front() ialah fungsi yang dipratentukan dalam C++ STL, yang secara langsung merujuk kepada kedudukan indeks pertama baris gilir.
back()
back() ialah fungsi yang telah ditetapkan dalam C++ STL, yang secara langsung merujuk kepada kedudukan indeks terakhir baris gilir.
push_back()
push_back() juga merupakan fungsi pratakrif untuk memasukkan elemen dari belakang.
Algoritma
Kami akan menggunakan fail pengepala 'iostream' dan 'deque' untuk memulakan program.
Kami masukkan ke dalam deque untuk mengendalikan nilai maksimum atau minimum nombor.
"deque
dq" - Dengan menggunakannya, kami boleh mendayakan sifat tindanan dan baris gilir
Bermula dari gelung for, kami memasukkan elemen dalam julat daripada 10 hingga 15. Kemudian gunakan kaedah yang dipanggil 'push_back[i ]' yang menerima 'i' sebagai parameter dan menggunakan gelung for untuk menolak elemen tatasusunan.
Kemudian, kami menggunakan fungsi pratakrif front() dan back() untuk mencipta dua pembolehubah untuk mencari minimum dan maksimum nilai nombor. front() mencari indeks pertama untuk mewakili nombor terkecil, manakala back() mencari indeks terakhir untuk mewakili nombor terbesar.
Sekarang kami memulakan gelung for untuk mengulangi panjang nombor indeks dan menggunakan panjang itu untuk mengklasifikasikan perbandingan elemen terkecil dan terbesar sebagai 'dq[i]'. Jadi, ini akan mencari nombor minimum dan maksimum.
Akhir sekali, kami mencetak output panjang minimum dan maksimum dengan bantuan pembolehubah 'min_element' dan 'max_element'.
李>
Contoh
Dalam program ini, kami akan menyelesaikan struktur data baris gilir untuk mendapatkan nilai minimum dan maksimum dalam masa O(1).
#include <iostream> #include <deque> using namespace std; int main() { deque<int> dq; // double ended queue // insert elements into the deque using a loop for(int i = 10; i <= 15; i++) { dq.push_back(i); } // find the minimum and maximum elements int min_element = dq.front(); int max_element = dq.back(); for(int i = 1; i < dq.size(); i++) { if(dq[i] < min_element) { min_element = dq[i]; } if(dq[i] > max_element) { max_element = dq[i]; } } //Print the minimum and maximum elements cout << "Minimum element: " << min_element << endl; cout << "Maximum element: " << max_element << endl; return 0; }
Output
Minimum element: 10 Maximum element: 15
KESIMPULAN
Kami meneroka konsep struktur data baris gilir untuk mencari elemen terkecil atau terbesar. Kami melihat cara front() dan belakang() boleh digunakan untuk mencari nilai minimum dan maksimum elemen, dan juga cara menambah tolak balik pada penghujung elemen yang diindeks. Dengan menggunakan deque kita boleh menangani masalah dalam kerumitan masa O(1).
Atas ialah kandungan terperinci Reka bentuk struktur data baris gilir untuk mendapatkan nilai minimum atau maksimum dalam masa O(1).. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Apabila menggunakan struktur data kompleks dalam Java, Comparator digunakan untuk menyediakan mekanisme perbandingan yang fleksibel. Langkah-langkah khusus termasuk: mentakrifkan kelas pembanding, menulis semula kaedah bandingkan untuk menentukan logik perbandingan. Buat contoh pembanding. Gunakan kaedah Collections.sort, menghantar contoh koleksi dan pembanding.

Struktur data dan algoritma ialah asas pembangunan Java Artikel ini meneroka secara mendalam struktur data utama (seperti tatasusunan, senarai terpaut, pepohon, dll.) dan algoritma (seperti pengisihan, carian, algoritma graf, dll.) dalam Java. Struktur ini diilustrasikan dengan contoh praktikal, termasuk menggunakan tatasusunan untuk menyimpan skor, senarai terpaut untuk mengurus senarai beli-belah, tindanan untuk melaksanakan rekursi, baris gilir untuk menyegerakkan benang, dan pepohon dan jadual cincang untuk carian dan pengesahan pantas. Memahami konsep ini membolehkan anda menulis kod Java yang cekap dan boleh diselenggara.

Jenis rujukan ialah jenis data khas dalam bahasa Go Nilai mereka tidak menyimpan data itu sendiri secara langsung, tetapi alamat data yang disimpan. Dalam bahasa Go, jenis rujukan termasuk kepingan, peta, saluran dan penunjuk. Pemahaman mendalam tentang jenis rujukan adalah penting untuk memahami pengurusan memori dan kaedah pemindahan data bahasa Go. Artikel ini akan menggabungkan contoh kod khusus untuk memperkenalkan ciri dan penggunaan jenis rujukan dalam bahasa Go. 1. Slices Slices ialah salah satu jenis rujukan yang paling biasa digunakan dalam bahasa Go.

Pokok AVL ialah pokok carian binari seimbang yang memastikan operasi data yang pantas dan cekap. Untuk mencapai keseimbangan, ia melakukan operasi belok kiri dan kanan, melaraskan subpokok yang melanggar keseimbangan. Pokok AVL menggunakan pengimbangan ketinggian untuk memastikan ketinggian pokok sentiasa kecil berbanding bilangan nod, dengan itu mencapai kerumitan masa logaritma (O(logn)) operasi carian dan mengekalkan kecekapan struktur data walaupun pada set data yang besar.

Gambaran Keseluruhan Rangka Kerja Koleksi Java Rangka kerja pengumpulan Java ialah bahagian penting dalam bahasa pengaturcaraan Java Ia menyediakan satu siri perpustakaan kelas kontena yang boleh menyimpan dan mengurus data. Pustaka kelas kontena ini mempunyai struktur data yang berbeza untuk memenuhi keperluan penyimpanan dan pemprosesan data dalam senario yang berbeza. Kelebihan rangka kerja koleksi ialah ia menyediakan antara muka bersatu, membolehkan pembangun mengendalikan perpustakaan kelas kontena yang berbeza dengan cara yang sama, dengan itu mengurangkan kesukaran pembangunan. Struktur data rangka kerja pengumpulan Java Rangka kerja pengumpulan Java mengandungi pelbagai struktur data, setiap satunya mempunyai ciri unik dan senario yang boleh digunakan. Berikut adalah beberapa struktur data rangka kerja pengumpulan Java yang biasa: 1. Senarai: Senarai ialah koleksi tersusun yang membolehkan elemen diulang. Li

Kajian mendalam tentang misteri struktur data bahasa Go memerlukan contoh kod khusus Sebagai bahasa pengaturcaraan yang ringkas dan cekap, bahasa Go juga menunjukkan daya tarikannya yang unik dalam memproses struktur data. Struktur data adalah konsep asas dalam sains komputer, yang bertujuan untuk mengatur dan mengurus data supaya ia boleh diakses dan dimanipulasi dengan lebih cekap. Dengan mempelajari secara mendalam tentang misteri struktur data bahasa Go, kami dapat memahami dengan lebih baik cara data disimpan dan dikendalikan, seterusnya meningkatkan kecekapan pengaturcaraan dan kualiti kod. 1. Array Array ialah salah satu struktur data yang paling mudah

Gambaran Keseluruhan Perpustakaan Struktur Data PHPSPL Pustaka struktur data PHPSPL (Perpustakaan Standard PHP) mengandungi satu set kelas dan antara muka untuk menyimpan dan memanipulasi pelbagai struktur data. Struktur data ini termasuk tatasusunan, senarai terpaut, tindanan, baris gilir dan set, setiap satunya menyediakan set kaedah dan sifat khusus untuk memanipulasi data. Tatasusunan Dalam PHP, tatasusunan ialah koleksi tertib yang menyimpan jujukan elemen. Kelas tatasusunan SPL menyediakan fungsi yang dipertingkatkan untuk tatasusunan PHP asli, termasuk pengisihan, penapisan dan pemetaan. Berikut ialah contoh menggunakan kelas tatasusunan SPL: useSplArrayObject;$array=newArrayObject(["foo","bar","baz"]);$array

Jadual cincang boleh digunakan untuk mengoptimumkan persilangan tatasusunan PHP dan pengiraan kesatuan, mengurangkan kerumitan masa daripada O(n*m) kepada O(n+m) Langkah-langkah khusus adalah seperti berikut: Gunakan jadual cincang untuk memetakan elemen tatasusunan pertama kepada nilai Boolean untuk mencari dengan cepat sama ada unsur dalam tatasusunan kedua wujud dan meningkatkan kecekapan pengiraan persilangan. Gunakan jadual cincang untuk menandakan elemen tatasusunan pertama sebagai sedia ada, dan kemudian tambahkan elemen tatasusunan kedua satu demi satu, mengabaikan elemen sedia ada untuk meningkatkan kecekapan pengiraan kesatuan.
