From 44ddba38a681e11a9e8ed6b52865dc453d49d817 Mon Sep 17 00:00:00 2001 From: rongyi Date: Tue, 14 May 2024 18:34:22 +0800 Subject: [PATCH] Normalize mid calculate in case overflow --- codes/rust/chapter_divide_and_conquer/binary_search_recur.rs | 2 +- codes/rust/chapter_sorting/radix_sort.rs | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/codes/rust/chapter_divide_and_conquer/binary_search_recur.rs b/codes/rust/chapter_divide_and_conquer/binary_search_recur.rs index 4130a147d..b0864cbca 100644 --- a/codes/rust/chapter_divide_and_conquer/binary_search_recur.rs +++ b/codes/rust/chapter_divide_and_conquer/binary_search_recur.rs @@ -10,7 +10,7 @@ fn dfs(nums: &[i32], target: i32, i: i32, j: i32) -> i32 { if i > j { return -1; } - let m: i32 = (i + j) / 2; + let m: i32 = i + (j - i) / 2; if nums[m as usize] < target { // 递归子问题 f(m+1, j) return dfs(nums, target, m + 1, j); diff --git a/codes/rust/chapter_sorting/radix_sort.rs b/codes/rust/chapter_sorting/radix_sort.rs index d9c151be3..722826e1e 100644 --- a/codes/rust/chapter_sorting/radix_sort.rs +++ b/codes/rust/chapter_sorting/radix_sort.rs @@ -35,9 +35,7 @@ fn counting_sort_digit(nums: &mut [i32], exp: i32) { counter[d] -= 1; // 将 d 的数量减 1 } // 使用结果覆盖原数组 nums - for i in 0..n { - nums[i] = res[i]; - } + nums.copy_from_slice(&res); } /* 基数排序 */