Skip to main content

heap_sort

Function heap_sort 

Source
pub fn heap_sort<T: Ord>(arr: &mut [T])
Expand description

Heap sort — max-heap (uyum) yordamida tartiblash.

G’oya (2 bosqich):

  1. Massivni max-heapga aylantiramiz (build_heap, O(n));
  2. n marta: ildizdagi (eng katta) elementni oxirgi element bilan almashtiramiz, heap hajmini bittaga kamaytiramiz va ildizni sift_down bilan joyiga tushiramiz.

Kuchli tomoni: qo’shimcha xotira umuman kerak emas, va eng yomon holat ham kafolatlangan O(n log n) (quick sortdan farqli). Zaif tomoni: keshga do’st emas — shuning uchun amalda quick sortdan sekinroq.

  • Time: O(n log n) har doim, Space: O(1), barqaror emas.

§Misol

use rust_algorithms::sorting::heap_sort;

let mut v = vec![12, 11, 13, 5, 6, 7];
heap_sort(&mut v);
assert_eq!(v, [5, 6, 7, 11, 12, 13]);