Skip to main content

quick_sort

Function quick_sort 

Source
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]);