Სარჩევი:

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

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

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

თაიგულის დალაგება მუშაობს შემდეგნაირად:

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

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

ასევე, იპოვით სამუშაოს მაგალითები დან bucket დალაგება C, C++, Java და Python-ში. Bucket Sort არის დახარისხება ტექნიკა რომ ჯიშები ელემენტებს ჯერ ელემენტების რამდენიმე ჯგუფად დაყოფით ე.წ თაიგულები . ელემენტები პირველ რიგში მიმოფანტულია თაიგულები შემდეგ ელემენტები თაიგულები არიან დალაგებულია.

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

ამის გათვალისწინებით, როგორ იპოვით თაიგულების რაოდენობას თაიგულების დალაგებაში?

თუ თაიგულები აქვს სიგრძე 2^k, თითოეული ვედრო აქვს პირველი ზომა და bucket დალაგება გადაგვარდება დათვლაში დალაგება . ასე რომ, თქვენ გინდათ თითოეული ვედრო ზომა იყოს 1-ზე მეტი. თუ გვაქვს n თაიგულები , და msbits(x, k) აბრუნებს 2^k მნიშვნელობას, შემდეგ თითოეულს ვედრო ზომა არის 2^k/n.

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

საშუალო დროის სირთულე ამისთვის Bucket Sort არის O(n + k). Ყველაზე ცუდი დროის სირთულე არის O(n²). Კოსმოსი სირთულის ამისთვის Bucket Sort არის O(n+k).

გირჩევთ: