public abstract class ArrayLib
extends java.lang.Object
Modifier and Type | Field | Description |
---|---|---|
static int |
IndexMax |
|
static int |
IndexMin |
|
static int |
SORT_THRESHOLD |
Arrays with lengths beneath this value will be insertion sorted.
|
Constructor | Description |
---|---|
ArrayLib() |
Modifier and Type | Method | Description |
---|---|---|
static int |
binarySearch(int[] a,
int key) |
Perform a binary search over a sorted array for the given key.
|
static int |
binarySearch(int[] a,
int key,
int length) |
Perform a binary search over a sorted range of an array for the given
key.
|
static int |
binarySearch(int[] a,
int key,
int begin,
int end) |
Perform a binary search over a sorted range of an array for the given
key.
|
static int |
binarySearch(java.lang.Object[] a,
java.lang.Object key) |
Perform a binary search over a sorted array for the given key.
|
static int |
binarySearch(java.lang.Object[] a,
java.lang.Object key,
int length) |
Perform a binary search over a sorted range of an array for the given
key.
|
static int |
binarySearch(java.lang.Object[] a,
java.lang.Object key,
int begin,
int end) |
Perform a binary search over a sorted range of an array for the given
key.
|
static int |
binarySearch(java.lang.Object[] a,
java.lang.Object key,
java.util.Comparator<java.lang.Object> cp) |
Perform a binary search over a sorted array for the given key.
|
static int |
binarySearch(java.lang.Object[] a,
java.lang.Object key,
java.util.Comparator<java.lang.Object> cp,
int length) |
Perform a binary search over a sorted range of an array for the given
key.
|
static int |
binarySearch(java.lang.Object[] a,
java.lang.Object key,
java.util.Comparator<java.lang.Object> cp,
int begin,
int end) |
Perform a binary search over a sorted range of an array for the given
key.
|
static int |
find(int[] a,
int key) |
Linearly search an array for a given key value.
|
static int |
find(int[] a,
int key,
int length) |
Linearly search an array range for a given key value.
|
static int |
find(int[] a,
int key,
int begin,
int end) |
Linearly search an array range for a given key value.
|
static int |
getIndexMax() |
|
static int |
getIndexMin() |
|
static int[] |
getIntArray(java.lang.String filename) |
Read in a text file as an array of integers.
|
protected static void |
insertionsort(double[] a,
int[] b,
int p,
int r) |
|
protected static void |
insertionsort(float[] a,
int[] b,
int p,
int r) |
|
protected static void |
insertionsort(int[] a,
double[] b,
int p,
int r) |
|
protected static void |
insertionsort(int[] a,
int[] b,
int p,
int r) |
|
protected static void |
insertionsort(int[] a,
java.lang.Object[] b,
int p,
int r) |
|
protected static void |
insertionsort(java.lang.Object[] a,
int[] b,
int p,
int r,
java.util.Comparator<java.lang.Object> cmp) |
|
static double |
max(double[] a) |
Find the maximum value in an array.
|
protected static void |
merge(double[] a,
int[] b,
int p,
int q,
int r) |
|
protected static void |
merge(float[] a,
int[] b,
int p,
int q,
int r) |
|
protected static void |
merge(int[] a,
double[] b,
int p,
int q,
int r) |
|
protected static void |
merge(int[] a,
int[] b,
int p,
int q,
int r) |
|
protected static void |
merge(int[] a,
java.lang.Object[] b,
int p,
int q,
int r) |
|
protected static void |
merge(java.lang.Object[] a,
int[] b,
int p,
int q,
int r,
java.util.Comparator<java.lang.Object> cmp) |
|
protected static void |
mergesort(double[] a,
int[] b,
int p,
int r) |
|
protected static void |
mergesort(float[] a,
int[] b,
int p,
int r) |
|
protected static void |
mergesort(int[] a,
double[] b,
int p,
int r) |
|
protected static void |
mergesort(int[] a,
int[] b,
int p,
int r) |
|
protected static void |
mergesort(int[] ks,
int[] kd,
java.lang.Object[] vs,
java.lang.Object[] vd,
int lo,
int hi,
int off) |
|
protected static void |
mergesort(java.lang.Object[] a,
int[] b,
int p,
int r,
java.util.Comparator<java.lang.Object> cmp) |
|
static double |
min(double[] a) |
Find the minimum value in an array.
|
static double[] |
resize(double[] a,
int size) |
Resize the given array as needed to meet a target size.
|
static float[] |
resize(float[] a,
int size) |
Resize the given array as needed to meet a target size.
|
static int[] |
resize(int[] a,
int size) |
Resize the given array as needed to meet a target size.
|
static java.lang.Object[] |
resize(java.lang.Object[] a,
int size) |
Resize the given array as needed to meet a target size.
|
static void |
shuffle(double[] a,
int start,
int len,
java.util.Random r) |
Randomly permute the contents of a range an array.
|
static void |
shuffle(double[] a,
java.util.Random r) |
Randomly permute the contents of an array.
|
static void |
shuffle(float[] a,
int start,
int len,
java.util.Random r) |
Randomly permute the contents of a range an array.
|
static void |
shuffle(float[] a,
java.util.Random r) |
Randomly permute the contents of an array.
|
static void |
shuffle(int[] a,
int start,
int len,
java.util.Random r) |
Randomly permute the contents of a range an array.
|
static void |
shuffle(int[] a,
java.util.Random r) |
Randomly permute the contents of an array.
|
static void |
shuffle(long[] a,
int start,
int len,
java.util.Random r) |
Randomly permute the contents of a range an array.
|
static void |
shuffle(long[] a,
java.util.Random r) |
Randomly permute the contents of an array.
|
static void |
shuffle(java.lang.Object[] a,
int start,
int len,
java.util.Random r) |
Randomly permute the contents of a range an array.
|
static void |
shuffle(java.lang.Object[] a,
java.util.Random r) |
Randomly permute the contents of an array.
|
static void |
sort(double[] a,
int[] b) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(double[] a,
int[] b,
int length) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(double[] a,
int[] b,
int begin,
int end) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(float[] a,
int[] b) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(float[] a,
int[] b,
int length) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(float[] a,
int[] b,
int begin,
int end) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(int[] a,
double[] b) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(int[] a,
double[] b,
int length) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(int[] a,
double[] b,
int begin,
int end) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(int[] a,
int[] b) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(int[] a,
int[] b,
int length) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(int[] a,
int[] b,
int begin,
int end) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(int[] a,
java.lang.Object[] b,
int[] abuf,
java.lang.Object[] bbuf,
int begin,
int end) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(int[] a,
java.lang.Object[] b,
int begin,
int end) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(java.lang.Object[] a,
int[] b,
int begin,
int end,
java.util.Comparator<java.lang.Object> cmp) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(java.lang.Object[] a,
int[] b,
int length,
java.util.Comparator<java.lang.Object> cmp) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static void |
sort(java.lang.Object[] a,
int[] b,
java.util.Comparator<java.lang.Object> cmp) |
Sort two arrays simultaneously, using the sort order of the values
in the first array to determine the sort order for both arrays.
|
static double |
sum(double[] a) |
Compute the sum of the values in an array.
|
static double[] |
trim(double[] a,
int size) |
Trims an array to be exactly the target a size.
|
static float[] |
trim(float[] a,
int size) |
Trims an array to be exactly the target a size.
|
static int[] |
trim(int[] a,
int size) |
Trims an array to be exactly the target a size.
|
static java.lang.Object[] |
trim(java.lang.Object[] a,
int size) |
Trims an array to be exactly the target a size.
|
public static int IndexMax
public static int IndexMin
public static final int SORT_THRESHOLD
public static final void shuffle(int[] a, java.util.Random r)
a
- the array to shuffler
- the source of randomness to usepublic static final void shuffle(int[] a, int start, int len, java.util.Random r)
a
- the array to shufflestart
- the starting index of the range to shufflelen
- then length of the range to shuffler
- the source of randomness to usepublic static final void shuffle(long[] a, java.util.Random r)
a
- the array to shuffler
- the source of randomness to usepublic static final void shuffle(long[] a, int start, int len, java.util.Random r)
a
- the array to shufflestart
- the starting index of the range to shufflelen
- then length of the range to shuffler
- the source of randomness to usepublic static final void shuffle(float[] a, java.util.Random r)
a
- the array to shuffler
- the source of randomness to usepublic static final void shuffle(float[] a, int start, int len, java.util.Random r)
a
- the array to shufflestart
- the starting index of the range to shufflelen
- then length of the range to shuffler
- the source of randomness to usepublic static final void shuffle(double[] a, java.util.Random r)
a
- the array to shuffler
- the source of randomness to usepublic static final void shuffle(double[] a, int start, int len, java.util.Random r)
a
- the array to shufflestart
- the starting index of the range to shufflelen
- then length of the range to shuffler
- the source of randomness to usepublic static final void shuffle(java.lang.Object[] a, java.util.Random r)
a
- the array to shuffler
- the source of randomness to usepublic static final void shuffle(java.lang.Object[] a, int start, int len, java.util.Random r)
a
- the array to shufflestart
- the starting index of the range to shufflelen
- then length of the range to shuffler
- the source of randomness to usepublic static final double max(double[] a)
a
- the arrayindMax
- the array minimum indexpublic static final double min(double[] a)
a
- the arrayindMin
- the array minimum indexpublic static final int getIndexMax()
IndexMax
- the array minimum indexpublic static final int getIndexMin()
IndexMin
- the array minimum indexpublic static final double sum(double[] a)
a
- the arraypublic static final int binarySearch(int[] a, int key)
a
- the array to searchkey
- the key to search forpublic static final int binarySearch(int[] a, int key, int length)
a
- the array to searchkey
- the key to search forlength
- the the length of the range to search over.public static final int binarySearch(int[] a, int key, int begin, int end)
a
- the array to searchkey
- the key to search forbegin
- the starting index of the rangeend
- the ending index of the range, exclusivepublic static final int binarySearch(java.lang.Object[] a, java.lang.Object key)
a
- the array to searchkey
- the key to search forpublic static final int binarySearch(java.lang.Object[] a, java.lang.Object key, int length)
a
- the array to searchkey
- the key to search forlength
- the the length of the range to search over.public static final int binarySearch(java.lang.Object[] a, java.lang.Object key, int begin, int end)
a
- the array to searchkey
- the key to search forbegin
- the starting index of the rangeend
- the ending index of the range, exclusivepublic static final int binarySearch(java.lang.Object[] a, java.lang.Object key, java.util.Comparator<java.lang.Object> cp)
a
- the array to searchkey
- the key to search forcp
- the comparator to use to compare key valuespublic static final int binarySearch(java.lang.Object[] a, java.lang.Object key, java.util.Comparator<java.lang.Object> cp, int length)
a
- the array to searchkey
- the key to search forcp
- the comparator to use to compare key valueslength
- the the length of the range to search over.public static final int binarySearch(java.lang.Object[] a, java.lang.Object key, java.util.Comparator<java.lang.Object> cp, int begin, int end)
a
- the array to searchkey
- the key to search forcp
- the comparator to use to compare key valuesbegin
- the starting index of the rangeend
- the ending index of the range, exclusivepublic static final int find(int[] a, int key)
a
- the array to searchkey
- the key to search forpublic static final int find(int[] a, int key, int length)
a
- the array to searchkey
- the key to search forlength
- the length of the range to search overpublic static final int find(int[] a, int key, int begin, int end)
a
- the array to searchkey
- the key to search forbegin
- the starting index of the rangeend
- the ending index of the range, exclusivepublic static final int[] resize(int[] a, int size)
a
- the array to potentially resizesize
- the minimum size of the target arraypublic static final float[] resize(float[] a, int size)
a
- the array to potentially resizesize
- the minimum size of the target arraypublic static final double[] resize(double[] a, int size)
a
- the array to potentially resizesize
- the minimum size of the target arraypublic static final java.lang.Object[] resize(java.lang.Object[] a, int size)
a
- the array to potentially resizesize
- the minimum size of the target arraypublic static final int[] trim(int[] a, int size)
a
- the array to trimsize
- the desired size of the array. This value must be lesser
than or equal to the size of the input array.public static final float[] trim(float[] a, int size)
a
- the array to trimsize
- the desired size of the array. This value must be lesser
than or equal to the size of the input array.public static final double[] trim(double[] a, int size)
a
- the array to trimsize
- the desired size of the array. This value must be lesser
than or equal to the size of the input array.public static final java.lang.Object[] trim(java.lang.Object[] a, int size)
a
- the array to trimsize
- the desired size of the array. This value must be lesser
than or equal to the size of the input array.public static final void sort(int[] a, double[] b)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.public static final void sort(int[] a, double[] b, int length)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.length
- the array range length to sort overpublic static final void sort(int[] a, double[] b, int begin, int end)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.begin
- the start index of the range to sortend
- the end index, exclusive, of the range to sortprotected static final void insertionsort(int[] a, double[] b, int p, int r)
protected static final void mergesort(int[] a, double[] b, int p, int r)
protected static final void merge(int[] a, double[] b, int p, int q, int r)
public static final void sort(int[] a, int[] b)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.public static final void sort(int[] a, int[] b, int length)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.length
- the array range length to sort overpublic static final void sort(int[] a, int[] b, int begin, int end)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.begin
- the start index of the range to sortend
- the end index, exclusive, of the range to sortprotected static final void insertionsort(int[] a, int[] b, int p, int r)
protected static final void mergesort(int[] a, int[] b, int p, int r)
protected static final void merge(int[] a, int[] b, int p, int q, int r)
public static final void sort(int[] a, java.lang.Object[] b, int begin, int end)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.begin
- the start index of the range to sortend
- the end index, exclusive, of the range to sortpublic static final void sort(int[] a, java.lang.Object[] b, int[] abuf, java.lang.Object[] bbuf, int begin, int end)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.abuf
- a buffer array to perform the sorting without
allocating any additional memorybbuf
- a buffer array to perform the sorting without
allocating any additional memorybegin
- the start index of the range to sortend
- the end index, exclusive, of the range to sortprotected static final void insertionsort(int[] a, java.lang.Object[] b, int p, int r)
protected static void mergesort(int[] ks, int[] kd, java.lang.Object[] vs, java.lang.Object[] vd, int lo, int hi, int off)
protected static final void merge(int[] a, java.lang.Object[] b, int p, int q, int r)
public static final void sort(double[] a, int[] b)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.public static final void sort(double[] a, int[] b, int length)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.length
- the length of the range to be sortedpublic static final void sort(double[] a, int[] b, int begin, int end)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.begin
- the start index of the range to sortend
- the end index, exclusive, of the range to sortprotected static final void insertionsort(double[] a, int[] b, int p, int r)
protected static final void mergesort(double[] a, int[] b, int p, int r)
protected static final void merge(double[] a, int[] b, int p, int q, int r)
public static final void sort(float[] a, int[] b)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.public static final void sort(float[] a, int[] b, int length)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.length
- the length of the range to be sortedpublic static final void sort(float[] a, int[] b, int begin, int end)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.begin
- the start index of the range to sortend
- the end index, exclusive, of the range to sortprotected static final void insertionsort(float[] a, int[] b, int p, int r)
protected static final void mergesort(float[] a, int[] b, int p, int r)
protected static final void merge(float[] a, int[] b, int p, int q, int r)
public static final void sort(java.lang.Object[] a, int[] b, java.util.Comparator<java.lang.Object> cmp)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.cmp
- the comparator to use to compare key valuespublic static final void sort(java.lang.Object[] a, int[] b, int length, java.util.Comparator<java.lang.Object> cmp)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.length
- the length of the range to be sortedcmp
- the comparator to use to compare key valuespublic static final void sort(java.lang.Object[] a, int[] b, int begin, int end, java.util.Comparator<java.lang.Object> cmp)
a
- the array to sort byb
- the array to re-arrange based on the sort order of the
first array.begin
- the start index of the range to sortend
- the end index, exclusive, of the range to sortcmp
- the comparator to use to compare key valuesprotected static final void insertionsort(java.lang.Object[] a, int[] b, int p, int r, java.util.Comparator<java.lang.Object> cmp)
protected static final void mergesort(java.lang.Object[] a, int[] b, int p, int r, java.util.Comparator<java.lang.Object> cmp)
protected static final void merge(java.lang.Object[] a, int[] b, int p, int q, int r, java.util.Comparator<java.lang.Object> cmp)
public static int[] getIntArray(java.lang.String filename)
filename
- the name of the file to read in