网站首页 > 文章中心 > 其它

java中求中位数代码

作者:小编 更新时间:2023-08-31 10:28:42 浏览量:8人看过

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

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

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

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

那计算一个1亿个浮点数的中位数,说白了是要你排序,然后找到中间那两个数字的平均数

剩下就是排序的算法部分了,无规律的随机数字可以考虑快排算法

java中求中位数代码-图1

补充代码(快排)

那就用快排好了

package quickSort;

public class QuickSort {

private static int count;

/**

* 测试

java中求中位数代码-图2

* @param args

*/

public static void main(String[] args) {

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;

java中求中位数代码-图3

import java.util.Arrays;

public class Test {

// 可换为多个数,如参数为: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); // 数组从小到大排序

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

import?java.util.Random;

public?class?GenerateNumber?{

public?static?void?main(String[]?args)?{

*?随即产生N个随即两位正整数,并按由大到小的顺序排列,并求中位数

public?static?void?generate(int?n)?{

int[]?nums?=?new?int[n];//?初始化数组

//?随机生成两位正整数并对数组赋值

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

//?输出排序前结果

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

for?(int?i?:?nums)?{

System.out.print(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排序后:");

//?输出中位数

}?else?{

java2亿个随机生成的无序整数,如何找到其中位数

{

public static void main(String [] srgs)

System.out.println(i);

Math.random()返回的是0到1之间的随机数,返回类型为double型,大于等于0,小于1,

public static double random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0.返回值是一个伪随机选择的数,在该范围内(近似)均匀分布.

以上就是土嘎嘎小编为大家整理的java中求中位数代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章