博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
find zhe median
阅读量:5932 次
发布时间:2019-06-19

本文共 2178 字,大约阅读时间需要 7 分钟。

hot3.png

题目描述:Median ValueThe Median is the "middle" of a sorted list of numbers.How to Find the Median ValueTo find the Median, place the numbers in value order and find the middle.Example: find the Median of 12, 3 and 5Put them in order:3, 5, 12The middle is 5, so the median is 5.
// 经典折半查找int parition(int* pArr, int begin, int end){	if (pArr == NULL || begin>end)	{		return -1;	}		//showData(pArr, 7);	int temp = pArr[begin];	while (end>begin)	{  // ==		while (end>begin && pArr[end] >= temp)		{			end--;		}		pArr[begin] = pArr[end];		while (end>begin && pArr[begin] <= temp)		{			begin++;		}		pArr[end] = pArr[begin];	}	pArr[begin] = temp;		cout << "mid=" << begin << ":" << temp<< endl;	showData(pArr, 7);	return begin;}/************************************************************************///   Find the Median//   {4,5,1,6,2,7,3,8}//  //  分析://   中位数位置就是 i=len/2//   //   实现方式//   1 递归 //   //  @input:mid=len/2 // /************************************************************************/int GetMedianNumber(int* pArr, int begin,int end,int mid){  	int iPivit = parition(pArr, begin, end);	//符合条件: 中位数位置就是 i=len/3	if (iPivit == mid)	{		cout << "Find the Median..." << endl;		return iPivit;	}	else if(mid> iPivit)	{		GetMedianNumber(pArr, iPivit + 1, end,mid);	}	else	{		GetMedianNumber(pArr, begin, iPivit-1, mid);	}	}//非递归方式int GetMedianNumber(int* pArr, int begin, int end){   		if (end%2 !=0)	{		return -1;	}	int mid = end/ 2; //中位数的位置	int iPivit = 0;	while (end >=begin)	{		iPivit = parition(pArr, begin, end);	   //符合条件: 中位数位置就是 i=len/2		if (iPivit == mid)		{			cout << "Find the Median..."<
 iPivit) { begin = iPivit + 1; parition(pArr, begin, end); } else { end = iPivit - 1; parition(pArr, begin, end); } } return 0;}void test(){  /** int aray[8] = { 2,4, 3, 6,3 ,2,5,5}; //2 0010 int num1 = 0; int num2 = 0; FindNumsAppearOnce(aray, 8, num1, num2); cout << "11=" << num1 << "22=" << num2 << endl; **/ int aray[7] = { 0, 1, 2, 4, 6, 5, 3 }; //int mid = GetMedianNumber(aray,0,6,3); int mid = GetMedianNumber(aray, 0, 6); cout << "mid============" << mid << ":" << aray[mid];}

欢迎关注微信账号 进行讨论

143609_OjBO_128542.jpg

转载于:https://my.oschina.net/woyaoxue/blog/485166

你可能感兴趣的文章
【资料合集】2018云栖大会•深圳峰会回顾合集:PDF下载
查看>>
畅通工程(并查集)
查看>>
IIS 支持 m3u8
查看>>
自定义MessageBox的窗口颜色,字体等属性
查看>>
Android6.0动态权限申请步骤以及需要注意的一些坑
查看>>
JVM的数据类型
查看>>
linux 内核移植(八)——移植三星移植过的内核
查看>>
Windows server 2008 R2 安装sharepoint2010
查看>>
美国发明家研究长寿之法 技术可让人不再死亡
查看>>
mybatis中${}和#{}的区别
查看>>
第一个程序HelloWorld
查看>>
dns劫持分析
查看>>
美国推出世界首款可自动调音吉他机器人
查看>>
ansible统一配置zabbix
查看>>
ubuntu下安装jre,Eclipse, CDT
查看>>
MariaDB安装、Apache安装
查看>>
Linux CentOS 更新yum源
查看>>
命令帮助文档详解
查看>>
zabbix2.4版本升级到3.2版本
查看>>
gitlab+jenkins+maven+docker持续集成(九)——centos7 ansible安装及问题汇总
查看>>