This is an automated email from the ASF dual-hosted git repository. aherbert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-numbers.git
commit 6f2d0060ea6bdf84a3b30fc6ecc496f84647e53e Author: Alex Herbert <[email protected]> AuthorDate: Wed Sep 24 18:04:35 2025 +0100 pmd fix: avoid reassigning loop control variables Updated loops which initialise using an offset index and immediately use increment/decrement. --- .../commons/numbers/arrays/IndexSupport.java | 6 +++--- .../apache/commons/numbers/arrays/QuickSelect.java | 24 +++++++++++----------- .../org/apache/commons/numbers/arrays/Sorting.java | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/commons-numbers-arrays/src/main/java/org/apache/commons/numbers/arrays/IndexSupport.java b/commons-numbers-arrays/src/main/java/org/apache/commons/numbers/arrays/IndexSupport.java index 6449d8c8..f62818d7 100644 --- a/commons-numbers-arrays/src/main/java/org/apache/commons/numbers/arrays/IndexSupport.java +++ b/commons-numbers-arrays/src/main/java/org/apache/commons/numbers/arrays/IndexSupport.java @@ -87,7 +87,7 @@ final class IndexSupport { // Find min/max to understand the range. int min = k[n - 1]; int max = min; - for (int i = n - 1; --i >= 0;) { + for (int i = n - 2; i >= 0; i--) { min = Math.min(min, k[i]); max = Math.max(max, k[i]); } @@ -166,7 +166,7 @@ final class IndexSupport { * @return true if ascending */ private static boolean isAscending(int[] data, int n) { - for (int i = 0; ++i < n;) { + for (int i = 1; i < n; i++) { if (data[i] < data[i - 1]) { // descending return false; @@ -188,7 +188,7 @@ final class IndexSupport { // Compress to remove duplicates int last = 0; int top = data[0]; - for (int i = 0; ++i < n;) { + for (int i = 1; i < n; i++) { final int v = data[i]; if (v == top) { continue; diff --git a/commons-numbers-arrays/src/main/java/org/apache/commons/numbers/arrays/QuickSelect.java b/commons-numbers-arrays/src/main/java/org/apache/commons/numbers/arrays/QuickSelect.java index 791f8b96..894f9f69 100644 --- a/commons-numbers-arrays/src/main/java/org/apache/commons/numbers/arrays/QuickSelect.java +++ b/commons-numbers-arrays/src/main/java/org/apache/commons/numbers/arrays/QuickSelect.java @@ -243,7 +243,7 @@ final class QuickSelect { // Scan the remaining data and insert // Mitigate worst case performance on descending data by backward sweep double max = a[left]; - for (int i = right + 1; --i > kb;) { + for (int i = right; i > kb; i--) { final double v = a[i]; if (v < max) { a[i] = max; @@ -325,7 +325,7 @@ final class QuickSelect { // Scan the remaining data and insert // Mitigate worst case performance on descending data by backward sweep double min = a[right]; - for (int i = left - 1; ++i < ka;) { + for (int i = left; i < ka; i++) { final double v = a[i]; if (v > min) { a[i] = min; @@ -438,7 +438,7 @@ final class QuickSelect { // Scan the remaining data and insert // Mitigate worst case performance on descending data by backward sweep double m = a[k]; - for (int i = right + 1; --i > k;) { + for (int i = right; i > k; i--) { final double v = a[i]; if (v < m) { a[i] = m; @@ -484,7 +484,7 @@ final class QuickSelect { // Scan the remaining data and insert // Mitigate worst case performance on descending data by backward sweep double m = a[k]; - for (int i = left - 1; ++i < k;) { + for (int i = left; i < k; i++) { final double v = a[i]; if (v > m) { a[i] = m; @@ -1349,7 +1349,7 @@ final class QuickSelect { // a[less - 1] < P1 : a[great + 1] > P2 // unvisited in [less, great] SORTING: - for (int k = less - 1; ++k <= great;) { + for (int k = less; k <= great; k++) { final double v = a[k]; if (v < v1) { // swap(a, k, less++) @@ -1417,7 +1417,7 @@ final class QuickSelect { // This copies the logic in the sorting loop using == comparisons EQUAL: - for (int k = less - 1; ++k <= great;) { + for (int k = less; k <= great; k++) { final double v = a[k]; if (v == v1) { a[k] = a[less]; @@ -1510,7 +1510,7 @@ final class QuickSelect { // Scan the remaining data and insert // Mitigate worst case performance on descending data by backward sweep int max = a[left]; - for (int i = right + 1; --i > kb;) { + for (int i = right; i > kb; i--) { final int v = a[i]; if (v < max) { a[i] = max; @@ -1592,7 +1592,7 @@ final class QuickSelect { // Scan the remaining data and insert // Mitigate worst case performance on descending data by backward sweep int min = a[right]; - for (int i = left - 1; ++i < ka;) { + for (int i = left; i < ka; i++) { final int v = a[i]; if (v > min) { a[i] = min; @@ -1705,7 +1705,7 @@ final class QuickSelect { // Scan the remaining data and insert // Mitigate worst case performance on descending data by backward sweep int m = a[k]; - for (int i = right + 1; --i > k;) { + for (int i = right; i > k; i--) { final int v = a[i]; if (v < m) { a[i] = m; @@ -1751,7 +1751,7 @@ final class QuickSelect { // Scan the remaining data and insert // Mitigate worst case performance on descending data by backward sweep int m = a[k]; - for (int i = left - 1; ++i < k;) { + for (int i = left; i < k; i++) { final int v = a[i]; if (v > m) { a[i] = m; @@ -2608,7 +2608,7 @@ final class QuickSelect { // a[less - 1] < P1 : a[great + 1] > P2 // unvisited in [less, great] SORTING: - for (int k = less - 1; ++k <= great;) { + for (int k = less; k <= great; k++) { final int v = a[k]; if (v < v1) { // swap(a, k, less++) @@ -2676,7 +2676,7 @@ final class QuickSelect { // This copies the logic in the sorting loop using == comparisons EQUAL: - for (int k = less - 1; ++k <= great;) { + for (int k = less; k <= great; k++) { final int v = a[k]; if (v == v1) { a[k] = a[less]; diff --git a/commons-numbers-arrays/src/main/java/org/apache/commons/numbers/arrays/Sorting.java b/commons-numbers-arrays/src/main/java/org/apache/commons/numbers/arrays/Sorting.java index cf35c4a0..ec17c5aa 100644 --- a/commons-numbers-arrays/src/main/java/org/apache/commons/numbers/arrays/Sorting.java +++ b/commons-numbers-arrays/src/main/java/org/apache/commons/numbers/arrays/Sorting.java @@ -510,7 +510,7 @@ final class Sorting { // Index of last unique value int unique = 0; // Do an insertion sort but only compare the current set of unique values. - for (int i = 0; ++i < n;) { + for (int i = 1; i < n; i++) { final int v = x[i]; int j = unique; if (v > x[j]) {
