Lines Matching refs:runs
1117 let mut runs = vec![]; in merge_sort() variables
1147 runs.push(Run { start, len: end - start }); in merge_sort()
1151 while let Some(r) = collapse(&runs) { in merge_sort()
1152 let left = runs[r + 1]; in merge_sort()
1153 let right = runs[r]; in merge_sort()
1162 runs[r] = Run { start: left.start, len: left.len + right.len }; in merge_sort()
1163 runs.remove(r + 1); in merge_sort()
1168 debug_assert!(runs.len() == 1 && runs[0].start == 0 && runs[0].len == len); in merge_sort()
1185 fn collapse(runs: &[Run]) -> Option<usize> { in merge_sort()
1186 let n = runs.len(); in merge_sort()
1188 && (runs[n - 1].start == 0 in merge_sort()
1189 || runs[n - 2].len <= runs[n - 1].len in merge_sort()
1190 || (n >= 3 && runs[n - 3].len <= runs[n - 2].len + runs[n - 1].len) in merge_sort()
1191 || (n >= 4 && runs[n - 4].len <= runs[n - 3].len + runs[n - 2].len)) in merge_sort()
1193 if n >= 3 && runs[n - 3].len < runs[n - 1].len { Some(n - 3) } else { Some(n - 2) } in merge_sort()