java中求中位数代码,java输入数组求中位数

JAVA怎么计算txt中一个1亿个浮点数的中位数?

你这个应该是面试题吧,平时不会让你做这样的问题

成都创新互联公司秉承实现全网价值营销的理念,以专业定制企业官网,网站设计制作、成都做网站,小程序制作,网页设计制作,手机网站开发,成都全网营销帮助传统企业实现“互联网+”转型升级专业定制企业官网,公司注重人才、技术和管理,汇聚了一批优秀的互联网技术人才,对客户都以感恩的心态奉献自己的专业和所长。

首先要了解一下什么是中位数,中位数就是数列中间的那个数,

如果一个集合是奇数个,那么中位数就是按大小排列后,最中间那个数,

如果一个集合是偶数个,那么中位数就是按大小排列后,最中间那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("数组个数:"+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]=key ij){

j--;

}

//i向右移,直到遇到比key大的值

while(num[i]=key ij){

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 如何求多个数的中位数 具体!!!

package com.test;

import java.util.Arrays;

public class Test {

public static void main(String[] args) {

System.out.println(zhongweishu(7, 4, 8));

}

// 可换为多个数,如参数为: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]; // 找出排序后中间的数组值

}

}

随即产生N个随即两位正整数,并按由大到小的顺序排列,并求中位数 用JAVA程序 急!!!!

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; i  nums.length; i++) {

nums[i] = new Random().nextInt(90) + 10;

}

// 输出排序前结果

System.out.print("排序前:");

for (int i : nums) {

System.out.print(i + " ");

}

// 降序排列

for (int i = 0; i  nums.length; i++) {

for (int j = 0; j  i; 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]);

}

}

}

排序前: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

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.完毕

新闻名称:java中求中位数代码,java输入数组求中位数
标题链接:https://www.cdcxhl.com/article46/heeheg.html

成都网站建设公司_创新互联,为您提供电子商务定制开发手机网站建设搜索引擎优化网站内链自适应网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营