查找中位数(java 快速排序)
来源:互联网 发布:国家质检总局网络培训 编辑:程序博客网 时间:2024/05/16 08:32
中位数(又称中值,英语:Median),统计学中的专有名词,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分。对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。
java代码:
import java.util.*;/** * @version 1.0 * @author zhouxiaowu * */public class MedianFinder { public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("please input some numbers:"); String str = sc.nextLine(); String[] s = str.split("\\s+"); int[] num= new int[s.length]; for(int i=0;i<s.length;i++){ num[i]=Integer.parseInt(s[i]); } double med=medianFinder(num); System.out.println("median is :"+med); } public static double medianFinder(int[] num){ int mid; int len=num.length; double med; if(len%2==0){ mid=len/2; med=(select(num,mid)+select(num,mid-1))/2.0; } else{ mid=(len-1)/2; med=(double)select(num,mid); } return med; } public static int select(int[] num,int k){ int low=0; int high=num.length-1; int j=0; int val=0; while(low<high){ j=partition(num,low,high); if(j==k){ val=num[j]; break; }else if(j>k){ high=j-1; }else{ low=j+1; } } return val; } public static int partition(int[] num,int low,int high){ int i=low; int j=high; int temp=num[i]; while(i<j){ while(i<j && temp<=num[j]) j--; if(i<j) num[i++]=num[j]; while(i<j && temp>=num[i]) i++; if(i<j) num[j--]=num[i]; } num[i]=temp; return i; }}
测试结果:
input:4 6 8 1 9 7 5
output:median is :6.0
input:4 3 6 1 9 6
output:median is :5.0
1 0
- 查找中位数(java 快速排序)
- 利用快速排序的子程序查找中位数
- 快速排序(取中位数法)
- 快速排序(基准是中位数)
- 用快速排序找中位数
- 利用中位数进行快速排序
- 快速排序----QuickSort 中位数实现
- 快速排序及其相关应用(中位数,第几大数等等)
- 用QuickSort快速查找中位数(median)
- USTCOJ 1359 查找中位数 不用排序
- 题目1157:中位数:快速排序思想
- 快速排序优化通过中位数优化
- 17、java数组查找与交换排序及快速排序
- 17、java数组查找与交换排序及快速排序
- 简单Java冒泡排序 二分查找 快速排序
- 查找中位数
- poj2503-Babelfish(快速排序+二分查找)
- 数据结构--查找&&排序(快速复习)
- Android开发方法数超过64k(65k)解决办法
- 已启动程序,再启动通知原程序显示
- iOS高级编程之多线程的使用场景深入探索
- 黑苹果安装技巧!!!
- FlycoTabLayout使用
- 查找中位数(java 快速排序)
- 微信登录学习笔记
- Java 反射机制
- LightOJ 1029 【最小生成树】
- 本人的嵌入式职业英文记录 - 第1周
- Linux设备口
- 从接口与抽象类说起
- php迭代器模式
- 在Python2.7里安装SOAPpy和问题解决