Code coverage report for lib/algorithms/11-sorting/quickSort.js

Statements: 100% (24 / 24)      Branches: 100% (6 / 6)      Functions: 100% (4 / 4)      Lines: 100% (22 / 22)      Ignored: none     

All files » lib/algorithms/11-sorting/ » quickSort.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 361 1 28   28 12   28 12     1 28   28 40 44   40 36 36 36     28     1 36 36 36     1    
(function() {
	var quickSort = function(arrayToSort, low, high) {
		var index = partition(arrayToSort, low, high);
 
		if(low < index -1)
			quickSort(arrayToSort, low, index - 1);
 
		if(index < high)
			quickSort(arrayToSort, index, high);
	};
 
	function partition(arrayToSort, low, high) {
		var pivot = arrayToSort[Math.floor((low + high) / 2)];
 
		while (low <= high){
			while(arrayToSort[low] < pivot) low++;
			while(arrayToSort[high] > pivot) high--;
 
			if(low <= high) {
				swap(arrayToSort, low, high);
				low++;
				high--;
			}
		}
		return low;
	}
 
	function swap(arrayToSort, low, high) {
		var lowValue = arrayToSort[low];
		arrayToSort[low] = arrayToSort[high];
		arrayToSort[high] = lowValue;
	}
 
	module.exports = quickSort;
})();