From 4971a34cbd225ffccd2acfcca655e0d85adc259b Mon Sep 17 00:00:00 2001 From: B7M Date: Thu, 27 Aug 2026 13:29:45 -0400 Subject: [PATCH] Fix Perfect pivot selecting an index outside the current partition --- src/algo/Quickselect.js | 2 +- src/algo/Quicksort.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/algo/Quickselect.js b/src/algo/Quickselect.js index d2d922e3..1aed5e40 100644 --- a/src/algo/Quickselect.js +++ b/src/algo/Quickselect.js @@ -420,7 +420,7 @@ export default class Quickselect extends Algorithm { const sorted = this.arrayData.slice(left, right + 1); sorted.sort((a, b) => a - b); const midIndex = Math.floor(sorted.length / 2); - pivot = this.arrayData.indexOf(sorted[midIndex]); + pivot = this.arrayData.indexOf(sorted[midIndex], left); } else if (this.pivotType === 'random') { pivot = Math.floor(Math.random() * (right - left)) + left + 1; } diff --git a/src/algo/Quicksort.js b/src/algo/Quicksort.js index 6da96a84..b1bfc66f 100644 --- a/src/algo/Quicksort.js +++ b/src/algo/Quicksort.js @@ -394,7 +394,7 @@ export default class Quicksort extends Algorithm { const sorted = this.arrayData.slice(left, right + 1); sorted.sort((a, b) => a - b); const midIndex = Math.floor(sorted.length / 2); - pivot = this.arrayData.indexOf(sorted[midIndex]); + pivot = this.arrayData.indexOf(sorted[midIndex], left); } else if (this.pivotType === 'random') { pivot = Math.floor(Math.random() * (right - left)) + left + 1; }