From 6de559d0e991c224f59aefab567f33d062b7f3fc Mon Sep 17 00:00:00 2001 From: Abose Ukhun Date: Mon, 16 Oct 2017 12:03:41 +0100 Subject: [PATCH] add alternative implementation of bubble sort using a while loop --- Sorts/bubblesort.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Sorts/bubblesort.js b/Sorts/bubblesort.js index 4bcd3904f..a22832d26 100644 --- a/Sorts/bubblesort.js +++ b/Sorts/bubblesort.js @@ -28,4 +28,37 @@ bubbleSort(ar); //Array after sort console.log(ar); +/*alternative implementation of bubble sort algorithm. + Using a while loop instead. For educational purposses only + */ +/* +*In bubble sort, we keep iterating while something was swapped in +*the previous inner-loop iteration. By swapped I mean, in the +*inner loop iteration, we check each number if the number proceeding +*it is greater than itself, if so we swap them. +*/ + +function bubbleSort(arr){ + var swapped = true; + while(swapped){ + var swapped = false; + for(var i = 0; i < arr.length; i++){ + if(arr[i] > arr[i + 1]){ + var temp = arr[i]; + arr[i] = arr[i + 1]; + arr[i + 1] = temp; + swapped = true; + } + } + } + return arr; +} + +//test +console.log("-----before sorting-----") +var array = [10,5,3,8,2,6,4,7,9,1]; +console.log(array); +console.log("-----after sorting-----") +console.log(bubbleSort(array)); +