1
+ /* Bubble Sort implementation in JavaScript */
2
+
1
3
//Simple Bubble Sort implementation
2
- function bubbleSort ( arr ) {
3
- var len = arr . length ;
4
-
5
- for ( var i = 0 ; i < len - 1 ; i ++ ) {
6
- // Last i elements are already in place, so the inner loops will run until it reaches the last i elements
7
- for ( var j = 0 ; j < len - i - 1 ; j ++ ) {
8
- //To Sort in decreasing order, change the comparison operator to '<'
9
- if ( arr [ j ] > arr [ j + 1 ] ) {
10
- var tmp = arr [ j ] ;
11
- arr [ j ] = arr [ j + 1 ] ;
12
- arr [ j + 1 ] = tmp ;
13
- }
14
- }
15
- }
16
-
17
- return arr ;
4
+ function bubbleSort ( arr ) {
5
+ var len = arr . length ;
6
+
7
+ for ( var i = 0 ; i < len - 1 ; i ++ ) {
8
+ // Last i elements are already in place, so the inner loops will run until it reaches the last i elements
9
+ for ( var j = 0 ; j < len - i - 1 ; j ++ ) {
10
+ //To Sort in decreasing order, change the comparison operator to '<'
11
+ if ( arr [ j ] > arr [ j + 1 ] ) {
12
+ var tmp = arr [ j ] ;
13
+ arr [ j ] = arr [ j + 1 ] ;
14
+ arr [ j + 1 ] = tmp ;
15
+ }
16
+ }
17
+ }
18
+
19
+ return arr ;
18
20
}
19
21
20
22
//Following is a slightly modified bubble sort implementation, which tracks the list with a flag to check if it is already sorted
21
- function modifiedBubbleSort ( arr ) {
22
- var len = arr . length ;
23
+ function modifiedBubbleSort ( arr ) {
24
+ var len = arr . length ;
23
25
24
- for ( var i = 0 ; i < len - 1 ; i ++ ) {
25
- var flag = false ; //Taking a flag variable
26
+ for ( var i = 0 ; i < len - 1 ; i ++ ) {
27
+ var flag = false ; //Taking a flag variable
26
28
27
- // Last i elements are already in place, so the inner loops will run until it reaches the last i elements
28
- for ( var j = 0 ; j < len - i - 1 ; j ++ ) {
29
- //To Sort in decreasing order, change the comparison operator to '<'
30
- if ( arr [ j ] > arr [ j + 1 ] ) {
31
- var tmp = arr [ j ] ;
32
- arr [ j ] = arr [ j + 1 ] ;
33
- arr [ j + 1 ] = tmp ;
29
+ // Last i elements are already in place, so the inner loops will run until it reaches the last i elements
30
+ for ( var j = 0 ; j < len - i - 1 ; j ++ ) {
31
+ //To Sort in decreasing order, change the comparison operator to '<'
32
+ if ( arr [ j ] > arr [ j + 1 ] ) {
33
+ var tmp = arr [ j ] ;
34
+ arr [ j ] = arr [ j + 1 ] ;
35
+ arr [ j + 1 ] = tmp ;
34
36
35
- flag = true ; //Setting the flag, if swapping occurs
36
- }
37
- }
37
+ flag = true ; //Setting the flag, if swapping occurs
38
+ }
39
+ }
38
40
39
- //If not swapped, that means the list has already sorted
40
- if ( ! flag ) break ;
41
- }
41
+ //If not swapped, that means the list has already sorted
42
+ if ( ! flag ) break ;
43
+ }
42
44
43
- return arr ;
45
+ return arr ;
44
46
}
45
47
46
48
@@ -51,13 +53,13 @@ function modifiedBubbleSort(arr){
51
53
* Using Math.round() will give you a non-uniform distribution!
52
54
*/
53
55
function getRandomInt ( min , max ) {
54
- return Math . floor ( Math . random ( ) * ( max - min + 1 ) ) + min ;
56
+ return Math . floor ( Math . random ( ) * ( max - min + 1 ) ) + min ;
55
57
}
56
58
57
59
var arr = [ ] ;
58
60
59
- for ( var i = 0 ; i < 10 ; i ++ ) { //initialize a random integer unsorted array
60
- arr . push ( getRandomInt ( 1 , 100 ) ) ;
61
+ for ( var i = 0 ; i < 10 ; i ++ ) { //initialize a random integer unsorted array
62
+ arr . push ( getRandomInt ( 1 , 100 ) ) ;
61
63
}
62
64
63
65
console . log ( "Unsorted array: " ) ;
0 commit comments