From f6ff796303331e8dc459b9bfd1bfbd9b870c9e82 Mon Sep 17 00:00:00 2001 From: Niraj Kashyap Date: Fri, 8 Nov 2019 15:19:51 +0530 Subject: [PATCH] Optimized Bubble sort --- src/sorting/bubblesort.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/sorting/bubblesort.js b/src/sorting/bubblesort.js index 7b5440ee..f39a18e2 100644 --- a/src/sorting/bubblesort.js +++ b/src/sorting/bubblesort.js @@ -25,14 +25,19 @@ function bubbleSort(array, cmp) { cmp = cmp || comparator; var temp; - for (var i = 0; i < array.length; i += 1) { - for (var j = i; j > 0; j -= 1) { - if (cmp(array[j], array[j - 1]) < 0) { + for (var i = 0; i < array.length - 1 ; i += 1) { + var swapCount = 0; + for (var j = 0; j < array.length - 1 - i; j += 1) { + if (cmp(array[j], array[j + 1 ]) > 0) { temp = array[j]; - array[j] = array[j - 1]; - array[j - 1] = temp; + array[j] = array[j + 1]; + array[j + 1] = temp; + swapCount += 1; } } + if (swapCount === 0){ + break; + } } return array; }