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]) {

Reply via email to