mirror of
https://github.moeyy.xyz/https://github.com/trekhleb/javascript-algorithms.git
synced 2024-11-13 06:23:00 +08:00
Changed swap in QuickSortInPlace and InsertionSort
This commit is contained in:
parent
b2427d0e18
commit
822d4e3ac7
@ -6,7 +6,7 @@ export default class InsertionSort extends Sort {
|
|||||||
|
|
||||||
// Go through all array elements...
|
// Go through all array elements...
|
||||||
for (let i = 1; i < array.length; i += 1) {
|
for (let i = 1; i < array.length; i += 1) {
|
||||||
let currentIndex = i;
|
let j = i;
|
||||||
|
|
||||||
// Call visiting callback.
|
// Call visiting callback.
|
||||||
this.callbacks.visitingCallback(array[i]);
|
this.callbacks.visitingCallback(array[i]);
|
||||||
@ -14,23 +14,17 @@ export default class InsertionSort extends Sort {
|
|||||||
// Check if previous element is greater than current element.
|
// Check if previous element is greater than current element.
|
||||||
// If so, swap the two elements.
|
// If so, swap the two elements.
|
||||||
while (
|
while (
|
||||||
array[currentIndex - 1] !== undefined
|
array[j - 1] !== undefined
|
||||||
&& this.comparator.lessThan(array[currentIndex], array[currentIndex - 1])
|
&& this.comparator.lessThan(array[j], array[j - 1])
|
||||||
) {
|
) {
|
||||||
// Call visiting callback.
|
// Call visiting callback.
|
||||||
this.callbacks.visitingCallback(array[currentIndex - 1]);
|
this.callbacks.visitingCallback(array[j - 1]);
|
||||||
|
|
||||||
// Swap the elements.
|
// Swap the elements.
|
||||||
[
|
[array[j - 1], array[j]] = [array[j], array[j - 1]];
|
||||||
array[currentIndex - 1],
|
|
||||||
array[currentIndex],
|
|
||||||
] = [
|
|
||||||
array[currentIndex],
|
|
||||||
array[currentIndex - 1],
|
|
||||||
];
|
|
||||||
|
|
||||||
// Shift current index left.
|
// Shift current index left.
|
||||||
currentIndex -= 1;
|
j -= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,9 +39,7 @@ export default class QuickSortInPlace extends Sort {
|
|||||||
* @param {number} rightIndex
|
* @param {number} rightIndex
|
||||||
*/
|
*/
|
||||||
const swap = (leftIndex, rightIndex) => {
|
const swap = (leftIndex, rightIndex) => {
|
||||||
const temp = array[leftIndex];
|
[array[leftIndex], array[rightIndex]] = [array[rightIndex], array[leftIndex]];
|
||||||
array[leftIndex] = array[rightIndex];
|
|
||||||
array[rightIndex] = temp;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const pivot = array[highIndex];
|
const pivot = array[highIndex];
|
||||||
|
Loading…
Reference in New Issue
Block a user