Skip to content

Commit fde6fd8

Browse files
Nirajkashyapmgechev
authored andcommitted
Optimized Bubble sort (mgechev#163)
1 parent 21ad700 commit fde6fd8

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/sorting/bubblesort.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,19 @@
2525
function bubbleSort(array, cmp) {
2626
cmp = cmp || comparator;
2727
var temp;
28-
for (var i = 0; i < array.length; i += 1) {
29-
for (var j = i; j > 0; j -= 1) {
30-
if (cmp(array[j], array[j - 1]) < 0) {
28+
for (var i = 0; i < array.length - 1 ; i += 1) {
29+
var swapCount = 0;
30+
for (var j = 0; j < array.length - 1 - i; j += 1) {
31+
if (cmp(array[j], array[j + 1 ]) > 0) {
3132
temp = array[j];
32-
array[j] = array[j - 1];
33-
array[j - 1] = temp;
33+
array[j] = array[j + 1];
34+
array[j + 1] = temp;
35+
swapCount += 1;
3436
}
3537
}
38+
if (swapCount === 0){
39+
break;
40+
}
3641
}
3742
return array;
3843
}

0 commit comments

Comments
 (0)