@@ -9,8 +9,8 @@ export merge_sort;
9
9
export quick_sort;
10
10
export quick_sort3;
11
11
12
- /* Type: lteq */
13
- type lteq < T > = fn ( T , T ) -> bool ;
12
+ /* Type: le */
13
+ type le < T > = fn ( T , T ) -> bool ;
14
14
15
15
/*
16
16
Function: merge_sort
@@ -20,8 +20,8 @@ Merge sort. Returns a new vector containing the sorted list.
20
20
Has worst case O(n log n) performance, best case O(n), but
21
21
is not space efficient. This is a stable sort.
22
22
*/
23
- fn merge_sort < T : copy > ( le : lteq < T > , v : [ const T ] ) -> [ T ] {
24
- fn merge < T : copy > ( le : lteq < T > , a : [ T ] , b : [ T ] ) -> [ T ] {
23
+ fn merge_sort < T : copy > ( le : le < T > , v : [ const T ] ) -> [ T ] {
24
+ fn merge < T : copy > ( le : le < T > , a : [ T ] , b : [ T ] ) -> [ T ] {
25
25
let rs: [ T ] = [ ] ;
26
26
let a_len: uint = len :: < T > ( a) ;
27
27
let a_ix: uint = 0 u;
@@ -46,7 +46,7 @@ fn merge_sort<T: copy>(le: lteq<T>, v: [const T]) -> [T] {
46
46
ret merge:: < T > ( le, merge_sort :: < T > ( le, a) , merge_sort :: < T > ( le, b) ) ;
47
47
}
48
48
49
- fn part < T : copy > ( compare_func : lteq < T > , arr : [ mutable T ] , left : uint ,
49
+ fn part < T : copy > ( compare_func : le < T > , arr : [ mutable T ] , left : uint ,
50
50
right : uint , pivot : uint ) -> uint {
51
51
let pivot_value = arr[ pivot] ;
52
52
arr[ pivot] <-> arr[ right] ;
@@ -63,7 +63,7 @@ fn part<T: copy>(compare_func: lteq<T>, arr: [mutable T], left: uint,
63
63
ret storage_index;
64
64
}
65
65
66
- fn qsort < T : copy > ( compare_func : lteq < T > , arr : [ mutable T ] , left : uint ,
66
+ fn qsort < T : copy > ( compare_func : le < T > , arr : [ mutable T ] , left : uint ,
67
67
right : uint ) {
68
68
if right > left {
69
69
let pivot = ( left + right) / 2 u;
@@ -84,12 +84,12 @@ Quicksort. Sorts a mutable vector in place.
84
84
Has worst case O(n^2) performance, average case O(n log n).
85
85
This is an unstable sort.
86
86
*/
87
- fn quick_sort < T : copy > ( compare_func : lteq < T > , arr : [ mutable T ] ) {
87
+ fn quick_sort < T : copy > ( compare_func : le < T > , arr : [ mutable T ] ) {
88
88
if len :: < T > ( arr) == 0 u { ret; }
89
89
qsort :: < T > ( compare_func, arr, 0 u, len :: < T > ( arr) - 1 u) ;
90
90
}
91
91
92
- fn qsort3 < T : copy > ( compare_func_lt : lteq < T > , compare_func_eq : lteq < T > ,
92
+ fn qsort3 < T : copy > ( compare_func_lt : le < T > , compare_func_eq : le < T > ,
93
93
arr : [ mutable T ] , left : int , right : int ) {
94
94
if right <= left { ret; }
95
95
let v: T = arr[ right] ;
@@ -150,7 +150,7 @@ According to these slides this is the algorithm of choice for
150
150
151
151
This is an unstable sort.
152
152
*/
153
- fn quick_sort3 < T : copy > ( compare_func_lt : lteq < T > , compare_func_eq : lteq < T > ,
153
+ fn quick_sort3 < T : copy > ( compare_func_lt : le < T > , compare_func_eq : le < T > ,
154
154
arr : [ mutable T ] ) {
155
155
if len :: < T > ( arr) == 0 u { ret; }
156
156
qsort3 :: < T > ( compare_func_lt, compare_func_eq, arr, 0 ,
@@ -204,8 +204,8 @@ mod test_qsort3 {
204
204
mod test_qsort {
205
205
fn check_sort ( v1 : [ mutable int] , v2 : [ mutable int] ) {
206
206
let len = vec:: len :: < int > ( v1) ;
207
- fn ltequal ( & & a: int , & & b: int ) -> bool { ret a <= b; }
208
- let f = ltequal ;
207
+ fn leual ( & & a: int , & & b: int ) -> bool { ret a <= b; }
208
+ let f = leual ;
209
209
quick_sort :: < int > ( f, v1) ;
210
210
let i = 0 u;
211
211
while i < len {
@@ -247,8 +247,8 @@ mod test_qsort {
247
247
248
248
let expected = [ 1 , 2 , 3 ] ;
249
249
250
- fn lteq ( & & a: int , & & b: int ) -> bool { int:: le ( a, b) }
251
- sort:: quick_sort ( lteq , names) ;
250
+ fn le ( & & a: int , & & b: int ) -> bool { int:: le ( a, b) }
251
+ sort:: quick_sort ( le , names) ;
252
252
253
253
let immut_names = vec:: from_mut ( names) ;
254
254
@@ -264,8 +264,8 @@ mod tests {
264
264
265
265
fn check_sort ( v1 : [ int ] , v2 : [ int ] ) {
266
266
let len = vec:: len :: < int > ( v1) ;
267
- fn lteq ( & & a: int , & & b: int ) -> bool { ret a <= b; }
268
- let f = lteq ;
267
+ fn le ( & & a: int , & & b: int ) -> bool { ret a <= b; }
268
+ let f = le ;
269
269
let v3 = merge_sort :: < int > ( f, v1) ;
270
270
let i = 0 u;
271
271
while i < len {
@@ -294,9 +294,9 @@ mod tests {
294
294
295
295
#[ test]
296
296
fn test_merge_sort_mutable ( ) {
297
- fn lteq ( & & a: int , & & b: int ) -> bool { ret a <= b; }
297
+ fn le ( & & a: int , & & b: int ) -> bool { ret a <= b; }
298
298
let v1 = [ mutable 3 , 2 , 1 ] ;
299
- let v2 = merge_sort ( lteq , v1) ;
299
+ let v2 = merge_sort ( le , v1) ;
300
300
assert v2 == [ 1 , 2 , 3 ] ;
301
301
}
302
302
}
0 commit comments