@@ -15,7 +15,6 @@ use core::prelude::*;
15
15
use core:: cmp:: { Eq , Ord } ;
16
16
use core:: uint;
17
17
use core:: util:: swap;
18
- use core:: vec:: len;
19
18
use core:: vec;
20
19
21
20
type Le < ' self , T > = & ' self fn ( v1 : & T , v2 : & T ) -> bool ;
@@ -29,7 +28,7 @@ type Le<'self, T> = &'self fn(v1: &T, v2: &T) -> bool;
29
28
pub fn merge_sort < T : Copy > ( v : & [ T ] , le : Le < T > ) -> ~[ T ] {
30
29
type Slice = ( uint , uint ) ;
31
30
32
- return merge_sort_ ( v, ( 0 u, len ( v ) ) , le) ;
31
+ return merge_sort_ ( v, ( 0 u, v . len ( ) ) , le) ;
33
32
34
33
fn merge_sort_ < T : Copy > ( v : & [ T ] , slice : Slice , le : Le < T > )
35
34
-> ~[ T ] {
@@ -47,10 +46,10 @@ pub fn merge_sort<T:Copy>(v: &[T], le: Le<T>) -> ~[T] {
47
46
}
48
47
49
48
fn merge < T : Copy > ( le : Le < T > , a : & [ T ] , b : & [ T ] ) -> ~[ T ] {
50
- let mut rs = vec:: with_capacity ( len ( a ) + len ( b ) ) ;
51
- let a_len = len ( a ) ;
49
+ let mut rs = vec:: with_capacity ( a . len ( ) + b . len ( ) ) ;
50
+ let a_len = a . len ( ) ;
52
51
let mut a_ix = 0 ;
53
- let b_len = len ( b ) ;
52
+ let b_len = b . len ( ) ;
54
53
let mut b_ix = 0 ;
55
54
while a_ix < a_len && b_ix < b_len {
56
55
if le ( & a[ a_ix] , & b[ b_ix] ) {
@@ -100,8 +99,9 @@ fn qsort<T>(arr: &mut [T], left: uint,
100
99
* This is an unstable sort.
101
100
*/
102
101
pub fn quick_sort < T > ( arr : & mut [ T ] , compare_func : Le < T > ) {
103
- if len :: < T > ( arr) == 0 u { return ; }
104
- qsort :: < T > ( arr, 0 u, len :: < T > ( arr) - 1 u, compare_func) ;
102
+ let len = arr. len ( ) ;
103
+ if len == 0 u { return ; }
104
+ qsort :: < T > ( arr, 0 u, len - 1 u, compare_func) ;
105
105
}
106
106
107
107
fn qsort3 < T : Copy + Ord + Eq > ( arr : & mut [ T ] , left : int , right : int ) {
@@ -138,7 +138,7 @@ fn qsort3<T:Copy + Ord + Eq>(arr: &mut [T], left: int, right: int) {
138
138
vec:: swap ( arr, k as uint , j as uint ) ;
139
139
k += 1 ;
140
140
j -= 1 ;
141
- if k == len :: < T > ( arr ) as int { break ; }
141
+ if k == arr . len ( ) as int { break ; }
142
142
}
143
143
k = right - 1 ;
144
144
while k > q {
@@ -754,7 +754,7 @@ mod test_qsort3 {
754
754
use core:: vec;
755
755
756
756
fn check_sort ( v1 : & mut [ int ] , v2 : & mut [ int ] ) {
757
- let len = vec :: len :: < int > ( v1 ) ;
757
+ let len = v1 . len ( ) ;
758
758
quick_sort3 :: < int > ( v1) ;
759
759
let mut i = 0 ;
760
760
while i < len {
@@ -799,7 +799,7 @@ mod test_qsort {
799
799
use core:: vec;
800
800
801
801
fn check_sort ( v1 : & mut [ int ] , v2 : & mut [ int ] ) {
802
- let len = vec :: len :: < int > ( v1 ) ;
802
+ let len = v1 . len ( ) ;
803
803
fn leual ( a : & int , b : & int ) -> bool { * a <= * b }
804
804
quick_sort :: < int > ( v1, leual) ;
805
805
let mut i = 0 u;
@@ -864,7 +864,7 @@ mod tests {
864
864
use core:: vec;
865
865
866
866
fn check_sort ( v1 : & [ int ] , v2 : & [ int ] ) {
867
- let len = vec :: len :: < int > ( v1 ) ;
867
+ let len = v1 . len ( ) ;
868
868
pub fn le ( a : & int , b : & int ) -> bool { * a <= * b }
869
869
let f = le;
870
870
let v3 = merge_sort :: < int > ( v1, f) ;
@@ -951,7 +951,7 @@ mod test_tim_sort {
951
951
}
952
952
953
953
fn check_sort ( v1 : & mut [ int ] , v2 : & mut [ int ] ) {
954
- let len = vec :: len :: < int > ( v1 ) ;
954
+ let len = v1 . len ( ) ;
955
955
tim_sort :: < int > ( v1) ;
956
956
let mut i = 0 u;
957
957
while i < len {
0 commit comments