赞
踩
7 1 5 4 1 8 11
为例进行;7
为有序数,因此从第二个数1
开始进行;1
向前找比它大的数,发现了7
,进行交换;5
向前找比它大的数,发现了7
,进行交换;4
向前找比它大的数,发现了7
,进行交换;继续向前找,与5
对比,还是比它大,继续交换;再向前之后就比它小了,结束;有序数列
,因此一旦发现不满足大小关系就可以提前结束当前循环;pub fn insert_sort<T: PartialOrd>(src: &mut Vec<T>){ let length = src.len(); for i in 1..length { for j in (1..=i).rev(){ if src[j] < src[j-1] { src.swap(j, j-1); } else { break; } } } } #[cfg(test)] mod tests{ …… #[test] fn insert_sort_test(){ let mut num = vec![ 7, 1, 5, 4, 1, 8, 11]; select_sort(&mut num);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。