@@ -353,17 +353,17 @@ struct RunState {
353
353
354
354
struct MergeState < T > {
355
355
mut min_gallop : uint ,
356
- mut mergePt : uint ,
357
- mut tmpPt : uint ,
356
+ // mut mergePt: uint,
357
+ // mut tmpPt: uint,
358
358
mut array : & [ mut T ] ,
359
359
runs : DVec < RunState > ,
360
360
}
361
361
362
362
fn MergeState < T > ( ) -> MergeState < T > {
363
363
MergeState {
364
364
min_gallop : MIN_GALLOP ,
365
- mergePt : 0 ,
366
- tmpPt : 0 ,
365
+ // mergePt: 0,
366
+ // tmpPt: 0,
367
367
array : & [ mut] ,
368
368
runs : DVec ( ) ,
369
369
}
@@ -427,13 +427,13 @@ impl<T: Copy Ord> MergeState<T> {
427
427
}
428
428
429
429
let slice = vec:: mut_view ( array, b1, b1+l1) ;
430
- self . mergePt = b1;
430
+ // self.mergePt = b1;
431
431
let k = gallop_right ( & const array[ b2] , slice, 0 ) ;
432
432
b1 += k;
433
433
l1 -= k;
434
434
if l1 != 0 {
435
435
let slice = vec:: mut_view ( array, b2, b2+l2) ;
436
- self . mergePt = b2;
436
+ // self.mergePt = b2;
437
437
let l2 = gallop_left (
438
438
& const array[ b1+l1-1 ] , slice, l2-1 ) ;
439
439
if l2 > 0 {
@@ -446,16 +446,16 @@ impl<T: Copy Ord> MergeState<T> {
446
446
}
447
447
}
448
448
self. runs . pop ( ) ;
449
- self . mergePt = 0 ;
449
+ // self.mergePt = 0;
450
450
}
451
451
452
452
fn merge_lo ( & self , array : & [ mut T ] , base1 : uint , len1 : uint ,
453
453
base2 : uint , len2 : uint ) {
454
454
assert len1 != 0 && len2 != 0 && base1+len1 == base2;
455
455
456
456
let tmp = vec:: to_mut ( vec:: slice ( array, base1, base1+len1) ) ;
457
- self . tmpPt = 0 ;
458
- self . mergePt = base1;
457
+ // self.tmpPt = 0;
458
+ // self.mergePt = base1;
459
459
460
460
let mut c1 = 0 ;
461
461
let mut c2 = base2;
@@ -465,7 +465,7 @@ impl<T: Copy Ord> MergeState<T> {
465
465
466
466
array[ dest] <-> array[ c2] ;
467
467
dest += 1 ; c2 += 1 ; len2 -= 1 ;
468
- self . mergePt += 1 ;
468
+ // self.mergePt += 1;
469
469
470
470
if len2 == 0 {
471
471
copy_vec ( array, dest, tmp, 0 , len1) ;
@@ -488,16 +488,16 @@ impl<T: Copy Ord> MergeState<T> {
488
488
if array[ c2] < tmp[ c1] {
489
489
array[ dest] <-> array[ c2] ;
490
490
dest += 1 ; c2 += 1 ; len2 -= 1 ;
491
- self . mergePt += 1 ;
491
+ // self.mergePt += 1;
492
492
count2 += 1 ; count1 = 0 ;
493
493
if len2 == 0 {
494
494
break_outer = true ;
495
495
}
496
496
} else {
497
497
array[ dest] <-> tmp[ c1] ;
498
498
dest += 1 ; c1 += 1 ; len1 -= 1 ;
499
- self . mergePt += 1 ;
500
- self . tmpPt += 1 ;
499
+ // self.mergePt += 1;
500
+ // self.tmpPt += 1;
501
501
count1 += 1 ; count2 = 0 ;
502
502
if len1 == 1 {
503
503
break_outer = true ;
@@ -519,25 +519,25 @@ impl<T: Copy Ord> MergeState<T> {
519
519
if count1 != 0 {
520
520
copy_vec ( array, dest, tmp, c1, count1) ;
521
521
dest += count1; c1 += count1; len1 -= count1;
522
- self . mergePt += count1; self . tmpPt += count1;
522
+ // self.mergePt += count1; self.tmpPt += count1;
523
523
if len1 <= 1 { break_outer = true ; break ; }
524
524
}
525
525
array[ dest] <-> array[ c2] ;
526
526
dest += 1 ; c2 += 1 ; len2 -= 1 ;
527
- self . mergePt += 1 ;
527
+ // self.mergePt += 1;
528
528
if len2 == 0 { break_outer = true ; break ; }
529
529
530
530
let tmp_view = vec:: const_view ( array, c2, c2+len2) ;
531
531
count2 = gallop_left ( & const tmp[ c1] , tmp_view, 0 ) ;
532
532
if count2 != 0 {
533
533
copy_vec ( array, dest, array, c2, count2) ;
534
534
dest += count2; c2 += count2; len2 -= count2;
535
- self . mergePt += count2;
535
+ // self.mergePt += count2;
536
536
if len2 == 0 { break_outer = true ; break ; }
537
537
}
538
538
array[ dest] <-> tmp[ c1] ;
539
539
dest += 1 ; c1 += 1 ; len1 -= 1 ;
540
- self . mergePt += 1 ; self . tmpPt += 1 ;
540
+ // self.mergePt += 1; self.tmpPt += 1;
541
541
if len1 == 1 { break_outer = true ; break ; }
542
542
min_gallop -= 1 ;
543
543
if !( count1 >= MIN_GALLOP || count2 >= MIN_GALLOP ) {
@@ -561,7 +561,7 @@ impl<T: Copy Ord> MergeState<T> {
561
561
assert len1 > 1;
562
562
copy_vec(array, dest, tmp, c1, len1);
563
563
}
564
- self.tmpPt = 0;
564
+ // self.tmpPt = 0;
565
565
}
566
566
567
567
fn merge_hi(&self, array: &[mut T], base1: uint, len1: uint,
@@ -576,8 +576,8 @@ impl<T: Copy Ord> MergeState<T> {
576
576
let mut len1 = len1;
577
577
let mut len2 = len2;
578
578
579
- self.mergePt = dest;
580
- self.tmpPt = len2 - 1;
579
+ // self.mergePt = dest;
580
+ // self.tmpPt = len2 - 1;
581
581
582
582
array[dest] <-> array[c1];
583
583
dest -= 1; c1 -= 1; len1 -= 1;
@@ -605,15 +605,15 @@ impl<T: Copy Ord> MergeState<T> {
605
605
if tmp[c2] < array[c1] {
606
606
array[dest] <-> array[c1];
607
607
dest -= 1; c1 -= 1; len1 -= 1;
608
- self.mergePt -= 1;
608
+ // self.mergePt -= 1;
609
609
count1 += 1; count2 = 0;
610
610
if len1 == 0 {
611
611
break_outer = true;
612
612
}
613
613
} else {
614
614
array[dest] <-> tmp[c2];
615
615
dest -= 1; c2 -= 1; len2 -= 1;
616
- self.mergePt -= 1; self.tmpPt -= 1;
616
+ // self.mergePt -= 1; self.tmpPt -= 1;
617
617
count2 += 1; count1 = 0;
618
618
if len2 == 1 {
619
619
break_outer = true;
@@ -635,28 +635,28 @@ impl<T: Copy Ord> MergeState<T> {
635
635
636
636
if count1 != 0 {
637
637
dest -= count1; c1 -= count1; len1 -= count1;
638
- self.mergePt -= count1;
638
+ // self.mergePt -= count1;
639
639
copy_vec(array, dest+1, array, c1+1, count1);
640
640
if len1 == 0 { break_outer = true; break; }
641
641
}
642
642
643
643
array[dest] <-> tmp[c2];
644
644
dest -= 1; c2 -= 1; len2 -= 1;
645
- self.mergePt -= 1; self.tmpPt -= 1;
645
+ // self.mergePt -= 1; self.tmpPt -= 1;
646
646
if len2 == 1 { break_outer = true; break; }
647
647
648
648
//let tmp_view = vec::mut_view(tmp, 0, len2);
649
649
let count2 = len2 - gallop_left(&const array[c1],
650
650
vec::mut_view(tmp, 0, len2), len2-1);
651
651
if count2 != 0 {
652
652
dest -= count2; c2 -= count2; len2 -= count2;
653
- self.mergePt -= count2; self.tmpPt -= count2;
653
+ // self.mergePt -= count2; self.tmpPt -= count2;
654
654
copy_vec(array, dest+1, tmp, c2+1, count2);
655
655
if len2 <= 1 { break_outer = true; break; }
656
656
}
657
657
array[dest] <-> array[c1];
658
658
dest -= 1; c1 -= 1; len1 -= 1;
659
- self.mergePt -= 1;
659
+ // self.mergePt -= 1;
660
660
if len1 == 0 { break_outer = true; break; }
661
661
min_gallop -= 1;
662
662
if !(count1 >= MIN_GALLOP || count2 >= MIN_GALLOP) {
@@ -683,7 +683,7 @@ impl<T: Copy Ord> MergeState<T> {
683
683
assert len2 != 0 ;
684
684
copy_vec ( array, dest-( len2-1 ) , tmp, 0 , len2) ;
685
685
}
686
- self . tmpPt = 0 ;
686
+ // self.tmpPt = 0;
687
687
}
688
688
689
689
fn merge_collapse ( & self , array : & [ mut T ] ) {
@@ -1139,7 +1139,7 @@ mod big_tests {
1139
1139
arr[ idx] = @rng. gen_float ( ) ;
1140
1140
}
1141
1141
tim_sort ( arr) ;
1142
- isSorted ( arr, 1 ) ;
1142
+ isSorted ( arr) ;
1143
1143
1144
1144
let arr = if n > 4 {
1145
1145
let part = vec:: view ( arr, 0 , 4 ) ;
0 commit comments