pub fn radix_sort(arr: &mut [u64])Expand description
Radix sort (LSD, 256 lik asos) — sonlarni raqamma-raqam tartiblash.
G’oya: eng past baytdan boshlab, har bir bayt bo’yicha counting sort qilamiz.
Counting sort barqaror bo’lgani uchun oldingi bosqichlar natijasi buzilmaydi —
8 ta bosqichdan keyin butun u64 tartiblangan bo’ladi.
- Time: O(d·(n + b)) =
u64uchun 8·(n + 256) ≈ O(n). - Space: O(n + b), barqaror.
Millionlab butun sonlarni tartiblashda sort_unstable dan ham tez bo’lishi mumkin.
§Misol
use rust_algorithms::sorting::radix_sort;
let mut v: Vec<u64> = vec![170, 45, 75, 90, 802, 24, 2, 66];
radix_sort(&mut v);
assert_eq!(v, [2, 24, 45, 66, 75, 90, 170, 802]);Manfiy sonlar-chi? i64 ni (x as i64 ^ i64::MIN) as u64 ko’rinishida
almashtirsangiz (belgi bitini teskari qilib), tartib saqlanadi.