思想:百度百科
项目用用到的一个用途:计算考生的做题速度分数
import java.util.Arrays;
/**
*
* Description: <p>四分位算法类</p>
*
*
*/
public class Quartile {
public static float[] quartile(long[] items) {
if (items == null || items.length == 0) return null;
//if (items.length < 5) return items;
float[] result = new float[3];
int length = items.length;
Arrays.sort(items);
if (length % 2 == 0) {//偶数
result[1] = 1.0f * (items[length/2 - 1] + items[length/2]) / 2;
} else {//奇数
result[1] = 1.0f * items[(length + 1)/2 - 1];
}
if (length % 4 == 0) {
result[0] = 1.0f * (items[length/4 - 1] + items[length/4]) / 2;
result[2] = 1.0f * (items[3*length/4 - 1] + items[3*length/4]) / 2;
} else {
result[0] = 1.0f * items[length/4];
result[2] = 1.0f * items[3*length/4];
}
return result;
}
public static void main(String[] args) {
long[] items = new long[]{30,20,50,40,50,60,55,45};
float[] result = Quartile.quartile(items);
for (int i=0; result != null && i< result.length; i++) {
System.out.println(result[i]);
}
}
}