From 4b8d24217c98a5221b3a581a773569e534cb8535 Mon Sep 17 00:00:00 2001 From: kenshin Date: Fri, 7 Aug 2026 00:45:57 +0800 Subject: [PATCH] fix bucket sort bad case --- src/sorting/bucket_sort.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/sorting/bucket_sort.rs b/src/sorting/bucket_sort.rs index 05fb30272ad..84c1493e803 100644 --- a/src/sorting/bucket_sort.rs +++ b/src/sorting/bucket_sort.rs @@ -10,6 +10,10 @@ pub fn bucket_sort(arr: &[usize]) -> Vec { } let max = *arr.iter().max().unwrap(); + if max == 0 { + return arr.to_vec(); + } + let len = arr.len(); let mut buckets = vec![vec![]; len + 1]; @@ -84,4 +88,12 @@ mod tests { let res = bucket_sort(&arr); assert!(is_sorted(&res) && have_same_elements(&res, &cloned)); } + + #[test] + fn all_zero_elements() { + let arr: [usize; 3] = [0, 0, 0]; + let cloned = arr; + let res = bucket_sort(&arr); + assert!(is_sorted(&arr) && have_same_elements(&res, &cloned)); + } }