File tree 1 file changed +9
-9
lines changed
1 file changed +9
-9
lines changed Original file line number Diff line number Diff line change 1
1
/// 原地排序的快速排序实现
2
2
/// 步骤:
3
- /// 1.指定一个基准值p(p为s[begin]), begin为0,end为len(s)-1
4
- /// 2.首先从后往前遍历,如果遍历的元素大于基准值,则继续往前遍历, end = end-1
5
- /// 3.如果从后往前遍历时的值小于基准值,begin的值赋值为s[end], begin = begin + 1
6
- /// 4.然后从前往后遍历,遍历值小于或者等于基准值时,继续向后遍历,begin = begin + 1
7
- /// 5.当遍历值大于或者等于基准值时,s[end] = s[begin]
8
- /// 6.再次重复2-5步,直到begin == end为止
9
- /// 7.最后s[begin] = p
10
- /// 8.递归快速排序以begin为分界线的两部分序列
3
+ /// 1.指定一个基准值p(p为s[begin]), begin为0,end为len(s)-1
4
+ /// 2.首先从后往前遍历,如果遍历的元素大于基准值,则继续往前遍历, end = end-1
5
+ /// 3.如果从后往前遍历时的值小于基准值,begin的值赋值为s[end], begin = begin + 1
6
+ /// 4.然后从前往后遍历,遍历值小于或者等于基准值时,继续向后遍历,begin = begin + 1
7
+ /// 5.当遍历值大于或者等于基准值时,s[end] = s[begin]
8
+ /// 6.再次重复2-5步,直到begin == end为止
9
+ /// 7.最后s[begin] = p
10
+ /// 8.递归快速排序以begin为分界线的两部分序列
11
11
pub fn sort < T : Ord + Clone > ( target : & mut [ T ] ) {
12
12
if target. len ( ) < 2 {
13
13
return ;
@@ -32,7 +32,7 @@ pub fn sort<T: Ord + Clone>(target: &mut [T]) {
32
32
std:: cmp:: Ordering :: Less => {
33
33
target[ end] = target[ begin] . clone ( ) ;
34
34
end -= 1 ;
35
- break ;
35
+ break ;
36
36
}
37
37
_ => begin += 1 ,
38
38
}
You can’t perform that action at this time.
0 commit comments