@@ -25,10 +25,10 @@ function startMergeSort() {
25
25
checkIfAlreadyRunning ( ) ;
26
26
27
27
copyArray = returnArray ( ) ;
28
- mergesort ( returnArray ( ) ) ;
28
+ mergesort ( copyArray ) ;
29
29
}
30
30
31
- function mergesort ( array : number [ ] ) {
31
+ function mergesort ( array : number [ ] ) {
32
32
if ( array . length < 2 ) {
33
33
//viewer.deselectPivotElement(sortArray.indexOf(array[0]));
34
34
//viewer.liftElements(copyArray.indexOf(array[0]), copyArray.indexOf(array[0]));
@@ -41,13 +41,20 @@ function mergesort(array: number[]) {
41
41
let right : number [ ] ;
42
42
43
43
mid = Math . floor ( array . length * 0.5 ) ;
44
- viewer . setPivotElement ( copyArray . indexOf ( array [ mid - 1 ] ) ) ;
44
+ // viewer.setPivotElement(copyArray.indexOf(array[mid - 1]));
45
45
46
46
left = array . slice ( 0 , mid ) ;
47
- viewer . lowerElements ( copyArray . indexOf ( left [ 0 ] ) , copyArray . indexOf ( left [ left . length - 1 ] ) ) ;
47
+ for ( let i = 0 ; i < left . length ; i ++ ) {
48
+ console . log ( "left " + left [ i ] ) ;
49
+ viewer . lowerElement ( left [ i ] ) ;
50
+ }
51
+
48
52
49
53
right = array . slice ( mid ) ;
50
- viewer . lowerElements ( copyArray . indexOf ( right [ 0 ] ) , copyArray . indexOf ( right [ right . length - 1 ] ) ) ;
54
+ for ( let i = 0 ; i < right . length ; i ++ ) {
55
+ console . log ( "right " + right [ i ] ) ;
56
+ viewer . lowerElement ( right [ i ] ) ;
57
+ }
51
58
52
59
//Split until there is only 1 element left
53
60
return merge ( mergesort ( left ) , mergesort ( right ) ) ;
@@ -61,9 +68,7 @@ function merge(left: number[], right: number[]) {
61
68
let tempLeftIndex : number = 0 ;
62
69
let tempRightIndex : number = 0 ;
63
70
64
- let start : number = copyArray . indexOf ( left [ 0 ] )
65
- let end : number = copyArray . indexOf ( right [ right . length - 1 ] ) ;
66
- let counter : number = start ;
71
+ let counter : number = copyArray . indexOf ( left [ 0 ] ) ;
67
72
let testing : number [ ] = copyArray . slice ( 0 ) ;
68
73
69
74
while ( tempLeftIndex < left . length && tempRightIndex < right . length ) {
@@ -74,9 +79,9 @@ function merge(left: number[], right: number[]) {
74
79
75
80
if ( left [ tempLeftIndex ] < right [ tempRightIndex ] ) {
76
81
77
- console . log ( "LEFT of : " + copyArray . indexOf ( left [ tempLeftIndex ] ) + " end " + end + " to place " + counter ) ;
78
- viewer . liftElements ( copyArray . indexOf ( left [ tempLeftIndex ] ) , copyArray . indexOf ( left [ tempLeftIndex ] ) ) ;
79
- viewer . moveElementToPlace ( copyArray . indexOf ( left [ tempLeftIndex ] ) , end , counter , false ) ;
82
+ console . log ( "LEFT of : " + left [ tempLeftIndex ] + " to place " + counter * 85 ) ;
83
+ // viewer.liftElement( left[tempLeftIndex]);
84
+ viewer . moveElementToPlace ( left [ tempLeftIndex ] , counter * 85 ) ;
80
85
81
86
result . push ( left [ tempLeftIndex ] ) ;
82
87
testing [ counter ] = left [ tempLeftIndex ] ;
@@ -85,9 +90,9 @@ function merge(left: number[], right: number[]) {
85
90
tempLeftIndex ++ ;
86
91
87
92
} else {
88
- console . log ( "RIGHT of : " + copyArray . indexOf ( right [ tempRightIndex ] ) + " end " + end + " to place " + counter ) ;
89
- viewer . liftElements ( copyArray . indexOf ( right [ tempRightIndex ] ) , copyArray . indexOf ( right [ tempRightIndex ] ) ) ;
90
- viewer . moveElementToPlace ( copyArray . indexOf ( right [ tempRightIndex ] ) , end , counter , false ) ;
93
+ console . log ( "RIGHT of : " + right [ tempRightIndex ] + " to place " + counter * 85 ) ;
94
+ // viewer.liftElement( right[tempRightIndex]);
95
+ viewer . moveElementToPlace ( right [ tempRightIndex ] , counter * 85 ) ;
91
96
92
97
result . push ( right [ tempRightIndex ] ) ;
93
98
testing [ counter ] = right [ tempRightIndex ] ;
@@ -100,24 +105,24 @@ function merge(left: number[], right: number[]) {
100
105
101
106
if ( right . slice ( tempRightIndex ) . length > 0 ) {
102
107
let moreRight = right . slice ( tempRightIndex ) ;
103
- console . log ( "MoRe right " + moreRight ) ;
104
108
for ( let i = 0 ; i < moreRight . length ; i ++ ) {
109
+ console . log ( "MoRe right " + moreRight [ i ] + " to place " + counter * 85 ) ;
105
110
testing [ counter ] = moreRight [ i ] ;
106
-
107
- viewer . liftElements ( testing . indexOf ( moreRight [ i ] ) , testing . indexOf ( moreRight [ i ] ) ) ;
108
- viewer . deselectPivotElement ( copyArray . indexOf ( moreRight [ i ] ) ) ;
111
+ viewer . moveElementToPlace ( moreRight [ i ] , counter * 85 ) ;
112
+ // viewer.liftElement( moreRight[i]);
113
+ viewer . deselectPivotElement ( moreRight [ i ] ) ;
109
114
110
115
counter ++ ;
111
116
}
112
117
}
113
118
if ( left . slice ( tempLeftIndex ) . length > 0 ) {
114
119
let moreLeft = left . slice ( tempLeftIndex ) ;
115
- console . log ( "MoRe left " + moreLeft ) ;
116
120
for ( let i = 0 ; i < moreLeft . length ; i ++ ) {
121
+ console . log ( "MoRe right " + moreLeft [ i ] + " to place " + counter * 85 ) ;
117
122
testing [ counter ] = moreLeft [ i ] ;
118
-
119
- viewer . liftElements ( testing . indexOf ( moreLeft [ i ] ) , testing . indexOf ( moreLeft [ i ] ) ) ;
120
- viewer . deselectPivotElement ( copyArray . indexOf ( moreLeft [ i ] ) ) ;
123
+ viewer . moveElementToPlace ( moreLeft [ i ] , counter * 85 ) ;
124
+ // viewer.liftElement( moreLeft[i]);
125
+ viewer . deselectPivotElement ( moreLeft [ i ] ) ;
121
126
counter ++ ;
122
127
}
123
128
}
0 commit comments