forked from satijalab/seurat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArrays2.java
executable file
·116 lines (98 loc) · 2.65 KB
/
Arrays2.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/**
* Arrays2
*
* @author Ludo Waltman
* @author Nees Jan van Eck
* @version 1.3.1, 11/17/14
*/
import java.util.Arrays;
import java.util.Random;
public class Arrays2
{
public static double calcSum(double[] value)
{
double sum;
int i;
sum = 0;
for (i = 0; i < value.length; i++)
sum += value[i];
return sum;
}
public static double calcSum(double[] value, int beginIndex, int endIndex)
{
double sum;
int i;
sum = 0;
for (i = beginIndex; i < endIndex; i++)
sum += value[i];
return sum;
}
public static double calcAverage(double[] value)
{
double average;
int i;
average = 0;
for (i = 0; i < value.length; i++)
average += value[i];
average /= value.length;
return average;
}
public static double calcMedian(double[] value)
{
double median;
double[] sortedValue;
sortedValue = (double[])value.clone();
Arrays.sort(sortedValue);
if (sortedValue.length % 2 == 1)
median = sortedValue[(sortedValue.length - 1) / 2];
else
median = (sortedValue[sortedValue.length / 2 - 1] + sortedValue[sortedValue.length / 2]) / 2;
return median;
}
public static double calcMinimum(double[] value)
{
double minimum;
int i;
minimum = value[0];
for (i = 1; i < value.length; i++)
minimum = Math.min(minimum, value[i]);
return minimum;
}
public static double calcMaximum(double[] value)
{
double maximum;
int i;
maximum = value[0];
for (i = 1; i < value.length; i++)
maximum = Math.max(maximum, value[i]);
return maximum;
}
public static int calcMaximum(int[] value)
{
int i, maximum;
maximum = value[0];
for (i = 1; i < value.length; i++)
maximum = Math.max(maximum, value[i]);
return maximum;
}
public static int[] generateRandomPermutation(int nElements)
{
return generateRandomPermutation(nElements, new Random());
}
public static int[] generateRandomPermutation(int nElements, Random random)
{
int i, j, k;
int[] permutation;
permutation = new int[nElements];
for (i = 0; i < nElements; i++)
permutation[i] = i;
for (i = 0; i < nElements; i++)
{
j = random.nextInt(nElements);
k = permutation[i];
permutation[i] = permutation[j];
permutation[j] = k;
}
return permutation;
}
}