求中位数的代码java 编程求中位数

JAVA怎么计算txt中一个1亿个浮点数的中位数?求中位数的代码java你这个应该是面试题吧,平时不会让你做这样求中位数的代码java的问题
首先要了解一下什么是中位数,中位数就是数列中间的那个数,
如果一个集合是奇数个,那么中位数就是按大小排列后,最中间那个数,
如果一个集合是偶数个 , 那么中位数就是按大小排列后,最中间那2个数的平均数
那计算一个1亿个浮点数的中位数,说白了是要你排序,然后找到中间那两个数字的平均数
剩下就是排序的算法部分了,无规律的随机数字可以考虑快排算法
补充代码(快排)
那就用快排好了
package quickSort;
public class QuickSort {
private static int count;
/**
* 测试
* @param args
*/
public static void main(String[] args) {
int[] num = {3,45,78,64,52,11,64,55,99,11,18};
System.out.println(arrayToString(num,"未排序"));
QuickSort(num,0,num.length-1);
System.out.println(arrayToString(num,"排序"));
System.out.println("数组个数求中位数的代码java:" num.length);
System.out.println("循环次数:" count);
}
/**
* 快速排序
* @param num 排序的数组
* @param left 数组的前针
* @param right 数组后针
*/
private static void QuickSort(int[] num, int left, int right) {
//如果left等于right,即数组只有一个元素,直接返回
if(left=right) {
return;
}
//设置最左边的元素为基准值
int key=num[left];
//数组中比key小的放在左边,比key大的放在右边,key值下标为i
int i=left;
int j=right;
while(ij){
//j向左移 , 直到遇到比key小的值
while(num[j]=keyij){
j--;
}
//i向右移 , 直到遇到比key大的值
while(num[i]=keyij){
i;
}
//i和j指向的元素交换
if(ij){
int temp=num[i];
num[i]=num[j];
num[j]=temp;
}
}
num[left]=num[i];
num[i]=key;
count;
QuickSort(num,left,i-1);
QuickSort(num,i 1,right);
}
private static String arrayToString(int[] arr,String flag) {
String str = "数组为(" flag "):";
for(int a : arr) {
str= a"\t";
}return str;}}
java 如何求多个数的中位数 具体?。。?/h2>package com.test;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
System.out.println(zhongweishu(7, 4, 8));
}
// 可换为多个数求中位数的代码java,如参数为:int a,int b,int c,int d,int e
public static int zhongweishu(int a, int b, int c){
int[] nums = {a,b,c};
Arrays.sort(nums);// 数组从小到大排序
return nums[nums.length/2]; // 找出排序后中间求中位数的代码java的数组值
}
}
java如何计算中位数就是先排序,然后确定数组长度
根据长度,确定数组下标 , 就可以
把数据取出来了 。2个数据要求平均数
java2亿个随机生成的无序整数,如何找到其中位数public class Test2
{
public static void main(String [] srgs)
{
int i=(int)(Math.random()*900) 100;
//int i= new java.util.Random().nextInt(900) 100;也可以
System.out.println(i);
}
}
也就是要求100到999之间的随机数,
Math.random()返回的是0到1之间的随机数,返回类型为double型 , 大于等于0,小于1,
引用JDK1.6api
public static double random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0 。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布 。
Math.random()*900,就是0到900之间的数了,可以取到0 , 但是取不到900,但是这个乘积是double类型的,将它强制转换成int类型,然后加上100,就变成了可以取到100,但是取不到1000.完毕
比较求出5个输入数据a、b、c、d、e的中位数 (java)整型的数据类型用int表示,整型的数组类型用int[]表示,这样你就好记了!
定义一个整型的数字(数字有值,假设他是5)就是
int
a
=
5;
定义一个整型的数组(数组有长度,假设他是5)就是
int[]
a
=
new
int[5];因为java中数组不是基本数据类型,所以不能这样定义:int[]
a
=
int[5];对于非基本数据类型,java中要用new关键字,所以就是:int[]
a
=
new
int[5];
随即产生N个随即两位正整数,并按由大到小的顺序排列,并求中位数 用JAVA程序 急?。。。?/h2>import java.util.Random;
public class GenerateNumber {
public static void main(String[] args) {
generate(31);
generate(22);
}
/**
* 随即产生N个随即两位正整数,并按由大到小的顺序排列,并求中位数
* @param n 生成n个两位正整数
*/
public static void generate(int n) {
int[] nums = new int[n];// 初始化数组
// 随机生成两位正整数并对数组赋值
for (int i = 0; inums.length; i) {
nums[i] = new Random().nextInt(90)10;
}
// 输出排序前结果
System.out.print("排序前:");
for (int i : nums) {
System.out.print(i" ");
}
// 降序排列
for (int i = 0; inums.length; i) {
for (int j = 0; ji; j) {
if (nums[j]nums[i]) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
// 输出排序后结果
System.out.print("\n排序后:");
for (int i : nums) {
System.out.print(i" ");
}
// 输出中位数
if (n % 2 == 0) {
System.out.println("\n中位数:"nums[n / 2 - 1]" "nums[n / 2]);
} else {
System.out.println("\n中位数:"nums[n / 2]);
}
}
}
【求中位数的代码java 编程求中位数】排序前:81 27 43 59 96 47 62 36 17 15 62 59 36 50 77 25 15 58 98 80 22 11 98 85 19 29 96 13 39 79 33
排序后:98 98 96 96 85 81 80 79 77 62 62 59 59 58 50 47 43 39 36 36 33 29 27 25 22 19 17 15 15 13 11
中位数:47
排序前:14 86 18 76 13 40 92 26 58 52 24 57 81 40 53 67 23 73 63 52 36 19
排序后:92 86 81 76 73 67 63 58 57 53 52 52 40 40 36 26 24 23 19 18 14 13
中位数:52 52
求中位数的代码java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于编程求中位数、求中位数的代码java的信息别忘了在本站进行查找喔 。

    推荐阅读