From 822d4e3ac72116a156a79c285d22aa06fd284608 Mon Sep 17 00:00:00 2001 From: Gustav Ekner Date: Thu, 3 Mar 2022 20:33:34 +0100 Subject: [PATCH] Changed swap in QuickSortInPlace and InsertionSort --- .../sorting/insertion-sort/InsertionSort.js | 18 ++++++------------ .../sorting/quick-sort/QuickSortInPlace.js | 4 +--- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/algorithms/sorting/insertion-sort/InsertionSort.js b/src/algorithms/sorting/insertion-sort/InsertionSort.js index 7a801613..83e79170 100644 --- a/src/algorithms/sorting/insertion-sort/InsertionSort.js +++ b/src/algorithms/sorting/insertion-sort/InsertionSort.js @@ -6,7 +6,7 @@ export default class InsertionSort extends Sort { // Go through all array elements... for (let i = 1; i < array.length; i += 1) { - let currentIndex = i; + let j = i; // Call visiting callback. this.callbacks.visitingCallback(array[i]); @@ -14,23 +14,17 @@ export default class InsertionSort extends Sort { // Check if previous element is greater than current element. // If so, swap the two elements. while ( - array[currentIndex - 1] !== undefined - && this.comparator.lessThan(array[currentIndex], array[currentIndex - 1]) + array[j - 1] !== undefined + && this.comparator.lessThan(array[j], array[j - 1]) ) { // Call visiting callback. - this.callbacks.visitingCallback(array[currentIndex - 1]); + this.callbacks.visitingCallback(array[j - 1]); // Swap the elements. - [ - array[currentIndex - 1], - array[currentIndex], - ] = [ - array[currentIndex], - array[currentIndex - 1], - ]; + [array[j - 1], array[j]] = [array[j], array[j - 1]]; // Shift current index left. - currentIndex -= 1; + j -= 1; } } diff --git a/src/algorithms/sorting/quick-sort/QuickSortInPlace.js b/src/algorithms/sorting/quick-sort/QuickSortInPlace.js index cc1f5e50..b2c9ae52 100644 --- a/src/algorithms/sorting/quick-sort/QuickSortInPlace.js +++ b/src/algorithms/sorting/quick-sort/QuickSortInPlace.js @@ -39,9 +39,7 @@ export default class QuickSortInPlace extends Sort { * @param {number} rightIndex */ const swap = (leftIndex, rightIndex) => { - const temp = array[leftIndex]; - array[leftIndex] = array[rightIndex]; - array[rightIndex] = temp; + [array[leftIndex], array[rightIndex]] = [array[rightIndex], array[leftIndex]]; }; const pivot = array[highIndex];