@@ -15,7 +15,6 @@ use core::prelude::*;
1515use core:: cmp:: { Eq , Ord } ;
1616use core:: uint;
1717use core:: util:: swap;
18- use core:: vec:: len;
1918use core:: vec;
2019
2120type 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;
2928pub fn merge_sort < T : Copy > ( v : & [ T ] , le : Le < T > ) -> ~[ T ] {
3029 type Slice = ( uint , uint ) ;
3130
32- return merge_sort_ ( v, ( 0 u, len ( v ) ) , le) ;
31+ return merge_sort_ ( v, ( 0 u, v . len ( ) ) , le) ;
3332
3433 fn merge_sort_ < T : Copy > ( v : & [ T ] , slice : Slice , le : Le < T > )
3534 -> ~[ T ] {
@@ -47,10 +46,10 @@ pub fn merge_sort<T:Copy>(v: &[T], le: Le<T>) -> ~[T] {
4746 }
4847
4948 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 ( ) ;
5251 let mut a_ix = 0 ;
53- let b_len = len ( b ) ;
52+ let b_len = b . len ( ) ;
5453 let mut b_ix = 0 ;
5554 while a_ix < a_len && b_ix < b_len {
5655 if le ( & a[ a_ix] , & b[ b_ix] ) {
@@ -100,8 +99,9 @@ fn qsort<T>(arr: &mut [T], left: uint,
10099 * This is an unstable sort.
101100 */
102101pub 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) ;
105105}
106106
107107fn 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) {
138138 vec:: swap ( arr, k as uint , j as uint ) ;
139139 k += 1 ;
140140 j -= 1 ;
141- if k == len :: < T > ( arr ) as int { break ; }
141+ if k == arr . len ( ) as int { break ; }
142142 }
143143 k = right - 1 ;
144144 while k > q {
@@ -754,7 +754,7 @@ mod test_qsort3 {
754754 use core:: vec;
755755
756756 fn check_sort ( v1 : & mut [ int ] , v2 : & mut [ int ] ) {
757- let len = vec :: len :: < int > ( v1 ) ;
757+ let len = v1 . len ( ) ;
758758 quick_sort3 :: < int > ( v1) ;
759759 let mut i = 0 ;
760760 while i < len {
@@ -799,7 +799,7 @@ mod test_qsort {
799799 use core:: vec;
800800
801801 fn check_sort ( v1 : & mut [ int ] , v2 : & mut [ int ] ) {
802- let len = vec :: len :: < int > ( v1 ) ;
802+ let len = v1 . len ( ) ;
803803 fn leual ( a : & int , b : & int ) -> bool { * a <= * b }
804804 quick_sort :: < int > ( v1, leual) ;
805805 let mut i = 0 u;
@@ -864,7 +864,7 @@ mod tests {
864864 use core:: vec;
865865
866866 fn check_sort ( v1 : & [ int ] , v2 : & [ int ] ) {
867- let len = vec :: len :: < int > ( v1 ) ;
867+ let len = v1 . len ( ) ;
868868 pub fn le ( a : & int , b : & int ) -> bool { * a <= * b }
869869 let f = le;
870870 let v3 = merge_sort :: < int > ( v1, f) ;
@@ -951,7 +951,7 @@ mod test_tim_sort {
951951 }
952952
953953 fn check_sort ( v1 : & mut [ int ] , v2 : & mut [ int ] ) {
954- let len = vec :: len :: < int > ( v1 ) ;
954+ let len = v1 . len ( ) ;
955955 tim_sort :: < int > ( v1) ;
956956 let mut i = 0 u;
957957 while i < len {
0 commit comments