Other minor optimizations while the going is good.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@807 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: ArrayUtil.java,v 1.9 2002/08/10 02:30:49 ray Exp $
|
// $Id: ArrayUtil.java,v 1.10 2002/08/10 18:42:35 mdb Exp $
|
||||||
//
|
//
|
||||||
// samskivert library - useful routines for java programs
|
// samskivert library - useful routines for java programs
|
||||||
// Copyright (C) 2001 Walter Korman
|
// Copyright (C) 2001 Walter Korman
|
||||||
@@ -37,19 +37,17 @@ public class ArrayUtil
|
|||||||
public static int[] getMaxIndexes (int[] values)
|
public static int[] getMaxIndexes (int[] values)
|
||||||
{
|
{
|
||||||
int max = Integer.MIN_VALUE;
|
int max = Integer.MIN_VALUE;
|
||||||
int num = 0;
|
int num = 0, vcount = values.length;
|
||||||
|
|
||||||
for (int ii=0; ii < values.length; ii++) {
|
for (int ii=0; ii < vcount; ii++) {
|
||||||
if (values[ii] < max) {
|
int value = values[ii];
|
||||||
// common case- stop checking things..
|
|
||||||
continue;
|
|
||||||
|
|
||||||
} else if (values[ii] > max) {
|
if (value > max) {
|
||||||
// new max
|
// new max
|
||||||
max = values[ii];
|
max = value;
|
||||||
num = 1;
|
num = 1;
|
||||||
|
|
||||||
} else {
|
} else if (value == max) {
|
||||||
// another sighting of max
|
// another sighting of max
|
||||||
num++;
|
num++;
|
||||||
}
|
}
|
||||||
@@ -57,12 +55,9 @@ public class ArrayUtil
|
|||||||
|
|
||||||
// now find the indexes that have max
|
// now find the indexes that have max
|
||||||
int[] maxes = new int[num];
|
int[] maxes = new int[num];
|
||||||
for (int ii=0, pos=0; ii < values.length; ii++) {
|
for (int ii=0, pos=0; pos < num; ii++) {
|
||||||
if (values[ii] == max) {
|
if (values[ii] == max) {
|
||||||
maxes[pos++] = ii;
|
maxes[pos++] = ii;
|
||||||
if (pos == num) {
|
|
||||||
break; // stop when we've got them all
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user