pub fn quick_sort<T: Ord>(arr: &mut [T])Expand description
Quick sort — amaliyotdagi eng tez umumiy tartiblash algoritmi.
G’oya: pivot (tayanch element) tanlaymiz va massivni ikkiga ajratamiz: pivotdan kichiklar chapga, kattalar o’ngga. Pivot o’z yakuniy joyiga tushadi. Keyin chap va o’ng qismlarni rekursiv tartiblaymiz.
Bu implementatsiyada ikkita muhim optimallashtirish bor:
-
median-of-three pivot: tartiblangan massivda O(n²) ga tushib qolmaslik uchun;
-
kichik bo’laklar (< 16) uchun insertion sort.
-
Time: O(n log n) o’rtacha, O(n²) nazariy eng yomon holatda.
-
Space: O(log n) — rekursiya stacki. Barqaror emas.
§Misol
use rust_algorithms::sorting::quick_sort;
let mut v = vec![10, 7, 8, 9, 1, 5];
quick_sort(&mut v);
assert_eq!(v, [1, 5, 7, 8, 9, 10]);