|
41 | 41 | (max_left, max_right, left_sum + right_sum)
|
42 | 42 | }
|
43 | 43 |
|
44 |
| -pub fn find_maximum_suarray<T>(array: &[T], low: usize, hight: usize) -> (usize, usize, T) |
| 44 | +/// find maximum sub array |
| 45 | +pub fn find_maximum_subarray<T>(array: &[T], low: usize, hight: usize) -> (usize, usize, T) |
45 | 46 | where
|
46 | 47 | T: Zero + Bounded + AddAssign + PartialOrd + Default + Clone + Copy + Debug,
|
47 | 48 | {
|
|
51 | 52 | } else {
|
52 | 53 | let mid = ((low as f64 + hight as f64) / 2f64).floor() as usize;
|
53 | 54 |
|
54 |
| - let (left_low, left_heigh, left_sum) = find_maximum_suarray(array, low, mid); |
55 |
| - let (right_low, right_high, right_sum) = find_maximum_suarray(array, mid + 1, hight); |
| 55 | + let (left_low, left_heigh, left_sum) = find_maximum_subarray(array, low, mid); |
| 56 | + let (right_low, right_high, right_sum) = find_maximum_subarray(array, mid + 1, hight); |
56 | 57 | let (cross_low, cross_hight, cross_sum) =
|
57 | 58 | find_max_crossing_subarray(array, low, mid, hight);
|
58 | 59 |
|
|
67 | 68 | }
|
68 | 69 |
|
69 | 70 | #[test]
|
70 |
| -fn test_find_maximum_suarray() { |
| 71 | +fn test_find_maximum_subarray() { |
71 | 72 | let array = vec![-2, 1, -3, 4, -1, 2, 1, -5, 4];
|
72 |
| - let result = find_maximum_suarray(&array, 0, array.len() - 1); |
| 73 | + let result = find_maximum_subarray(&array, 0, array.len() - 1); |
73 | 74 | println!(
|
74 | 75 | "start is {}, end is {}, sum is {}",
|
75 | 76 | result.0, result.1, result.2
|
|
0 commit comments