→სტრუქტურა და იმპლემენტაცია
[შეუმოწმებელი ვერსია] | [შეუმოწმებელი ვერსია] |
== სტრუქტურა და იმპლემენტაცია ==
სეგმენტური ხის ფესვში მოცემულია მთლიანი მასივის შესახებ ინფორმაცია, ანუ [1..n] (n - მასივის ზომა), მის მარცხენა შვილში [1..n / 2] , მარჯვენაში [n / 2 + 1, n] და ასე შემდეგ. შევნიშნოთ, რომ სეგმენტი ორ ნაწილად იყოფა. თუ სეგმენტის ზომა კენტია, არ აქვს მნიშვნელობა მარჯვენაში იქნება მარცხენაზე ერთით მეტი ზომის მქონე სეგმენტი - თუ პირიქით. სეგმენტური ხის ფოთლები, მარცხნიდან მარჯვნივ წარმოადგენენ მასივის ელემენტებს, რადგან ბოლოში მაქსიმალურად დაყოფილი, ანუ ერთ ელემენტიანი სეგმენტებია.
[[ფაილი:Segment_tree.svg|მინი| სეგმენტურის ხის სტრუქტურის გრაფიკული მაგალითი ]]განვიხილოთ კლასიკური ამოცანა, სეგმენტის მინიმალური მნიშვნელობების პოვნა q შეკითხვისთვის (Range Minimum Queries - (RMQ)).
კოდი C++ - ზე.
განახლების ფუნქცია
ინფორმაციის მოძიების ფუნქცია, ამ შემთხვევაში მინიმალური მნიშვნელობის პოვნა
|