Är hinksorteringsalgoritmen på plats?
Är hinksorteringsalgoritmen på plats?

Video: Är hinksorteringsalgoritmen på plats?

Video: Är hinksorteringsalgoritmen på plats?
Video: Bucket Sort Algorith / Radix Sort Algorithm | Bucket Sort In Data Structure | Simplilearn 2024, November
Anonim

Nej, det är inte en in- plats sortering algoritm . Hela idén är den ingången sorterar själva när de flyttas till hinkar . I det värsta av de bra fallen (sekventiella värden, men ingen upprepning) är det extra utrymmet som behövs lika stort som den ursprungliga arrayen.

På så sätt, vilka sorteringsalgoritmer finns på plats?

Som ett annat exempel omarrangerar många sorteringsalgoritmer arrayer till sorterad ordning på plats, inklusive: bubbla sortera , kamsortering, urvalssortering, insättningssort , heapsort och Shell-sort. Dessa algoritmer kräver bara några få pekare, så deras rymdkomplexitet är O(log n). Quicksort arbetar på plats på data som ska sorteras.

Därefter är frågan, hur fungerar en hinksorteringsalgoritm? Hink sort , eller bin sortera , är en sorteringsalgoritm den där Arbetar genom att fördela elementen i en array i ett antal hinkar . Varje hink är då sorterad individuellt, antingen med en annan sorteringsalgoritm , eller genom att rekursivt tillämpa algoritm för hinksortering . Ställ in en array med initialt tomma " hinkar ".

Följaktligen, hur implementerar du en hinksorteringsalgoritm?

  1. Anta att inmatningsmatrisen är: Skapa en matris med storlek 10.
  2. Sätt in element i hinkarna från arrayen. Elementen sätts in i enlighet med skopans räckvidd.
  3. Elementen i varje hink sorteras med någon av de stabila sorteringsalgoritmerna.
  4. Elementen från varje hink samlas ihop.

Var används hinksortering?

Hink sort är främst användbar när indata är jämnt fördelad över ett intervall. Tänk till exempel på följande problem. Sortera en stor uppsättning flyttalstal som ligger inom intervallet från 0,0 till 1,0 och är jämnt fördelade över intervallet.

Rekommenderad: