არის თუ არა თაიგულის დალაგების ალგორითმი?
არის თუ არა თაიგულის დალაგების ალგორითმი?

ვიდეო: არის თუ არა თაიგულის დალაგების ალგორითმი?

ვიდეო: არის თუ არა თაიგულის დალაგების ალგორითმი?
ვიდეო: რა არის ალგორითმი და რატომ უნდა გაინტერესებდეთ ეს? 2024, ნოემბერი
Anonim

არა, ეს არ არის ადგილი დახარისხება ალგორითმი . მთელი იდეა არის ის, რომ შეყვანა ჯიშები თავად, როგორც ისინი გადაადგილდებიან თაიგულები . უარეს შემთხვევაში (თანმიმდევრული მნიშვნელობები, მაგრამ განმეორების გარეშე) საჭირო დამატებითი სივრცე ისეთივე დიდია, როგორც ორიგინალური მასივი.

ამ გზით, რომელი დახარისხების ალგორითმები არსებობს?

როგორც სხვა მაგალითი, მრავალი დახარისხების ალგორითმი ანაწილებს მასივებს ადგილზე დალაგებულ თანმიმდევრობით, მათ შორის: ბუშტის დალაგება , სავარცხელი დალაგება, შერჩევის დალაგება, ჩასმის დალაგება , heapsort და Shell დახარისხება. ამ ალგორითმებს მხოლოდ რამდენიმე მაჩვენებელი სჭირდება, ამიტომ მათი სივრცის სირთულე არის O(log n). Quicksort მოქმედებს ადგილზე დასახარისხებელ მონაცემებზე.

შემდგომში ჩნდება კითხვა, როგორ მუშაობს თაიგულის დალაგების ალგორითმი? Bucket დალაგება , ან ურნის დალაგება , არის დახარისხების ალგორითმი რომ მუშაობს მასივის ელემენტების რიცხვში განაწილებით თაიგულები . თითოეული ვედრო არის მაშინ დალაგებულია ინდივიდუალურად, ან სხვადასხვას გამოყენებით დახარისხების ალგორითმი , ან რეკურსიული გამოყენებით bucket დახარისხების ალგორითმი . დააყენეთ მასივი თავდაპირველად ცარიელი " თაიგულები ".

შესაბამისად, როგორ ახორციელებთ თაიგულის დალაგების ალგორითმს?

  1. დავუშვათ, შეყვანის მასივი არის: შექმენით 10 ზომის მასივი.
  2. ჩადეთ ელემენტები მასივიდან თაიგულებში. ელემენტები ჩასმულია თაიგულის დიაპაზონის მიხედვით.
  3. თითოეული თაიგულის ელემენტები დალაგებულია ნებისმიერი სტაბილური დახარისხების ალგორითმის გამოყენებით.
  4. ელემენტები გროვდება თითოეული თაიგულიდან.

სად გამოიყენება თაიგულის დალაგება?

Bucket დალაგება ძირითადად სასარგებლოა, როდესაც შეყვანა ერთნაირად ნაწილდება დიაპაზონში. მაგალითად, განიხილეთ შემდეგი პრობლემა. დალაგება მცურავი წერტილის რიცხვების დიდი ნაკრები, რომლებიც 0.0-დან 1.0-მდეა და თანაბრად ნაწილდება დიაპაზონში.

გირჩევთ: