Reka bentuk struktur data baris gilir untuk mendapatkan nilai minimum atau maksimum dalam masa O(1).

PHPz
Lepaskan: 2023-09-10 14:33:02
ke hadapan
1062 orang telah melayarinya

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;
Salin selepas log masuk

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()
Salin selepas log masuk

front() ialah fungsi yang dipratentukan dalam C++ STL, yang secara langsung merujuk kepada kedudukan indeks pertama baris gilir.

back()
Salin selepas log masuk

back() ialah fungsi yang telah ditetapkan dalam C++ STL, yang secara langsung merujuk kepada kedudukan indeks terakhir baris gilir.

push_back()
Salin selepas log masuk

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;
}
Salin selepas log masuk

Output

Minimum element: 10
Maximum element: 15
Salin selepas log masuk

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!