File tree 2 files changed +26
-16
lines changed
2 files changed +26
-16
lines changed Original file line number Diff line number Diff line change @@ -14,6 +14,7 @@ module.exports = {
14
14
} ] ,
15
15
"camelcase" : "off" ,
16
16
"no-param-reassign" : "off" ,
17
- "no-plusplus" : "off"
17
+ "no-plusplus" : "off" ,
18
+ "class-methods-use-this" : "off"
18
19
}
19
20
}
Original file line number Diff line number Diff line change 1
- const sort = ( array ) => {
2
- let swapped ;
3
- do {
4
- swapped = false ;
5
- for ( let i = 0 ; i < array . length ; i ++ ) {
6
- if ( array [ i ] > array [ i + 1 ] ) {
7
- const temp = array [ i ] ;
8
- array [ i ] = array [ i + 1 ] ;
9
- array [ i + 1 ] = temp ;
10
- swapped = true ;
1
+ const Sort = require ( './sort' ) ;
2
+
3
+ class BubbleSort extends Sort {
4
+ sort ( originalArray ) {
5
+ let swapped = false ;
6
+ const array = [ ...originalArray ] ;
7
+ for ( let i = 1 ; i < array . length ; i += 1 ) {
8
+ swapped = false ;
9
+ this . callbacks . visitingCallback ( array [ i ] ) ;
10
+
11
+ for ( let j = 0 ; j < array . length - i ; j += 1 ) {
12
+ this . callbacks . visitingCallback ( array [ j ] ) ;
13
+ if ( this . comparator . lessThan ( array [ j + 1 ] , array [ j ] ) ) {
14
+ [ array [ j ] , array [ j + 1 ] ] = [ array [ j + 1 ] , array [ j ] ] ;
15
+ swapped = true ;
16
+ }
11
17
}
12
- }
13
- } while ( swapped ) ;
14
18
15
- return array ;
16
- } ;
19
+ if ( ! swapped ) {
20
+ return array ;
21
+ }
22
+ }
23
+ return array ;
24
+ }
25
+ }
17
26
18
- module . exports = sort ;
27
+ module . exports = BubbleSort ;
You can’t perform that action at this time.
0 commit comments