算法导论 练习题 9.3-7
来源:互联网 发布:尚观linux培训 骗局 编辑:程序博客网 时间:2024/05/17 23:14
#include <stdio.h>#include <stdlib.h>#include <limits.h>#define LEN 10void swop(int *a,int *b){int temp=*a;*a=*b;*b=temp;}int partition(int a[],int p,int r){int i=p-1,x=a[r],j;for(j=p;j<r;j++){if(a[j]<x){i++;swop(&a[i],&a[j]);}}swop(&a[r],&a[i+1]);return i+1;}int at(int a[],int p,int r,int i){int q=partition(a,p,r);int k=q-p+1;if(i==k)return a[q];else if(i<k)return at(a,p,q-1,i);elsereturn at(a,q+1,r,i-k);}int main(){int k=5;int a[LEN+1]={INT_MIN,90,4,77,89,23,6,11,45,65,70};int mid=LEN/2;int midEl=at(a,1,LEN,mid);int leftEls=k/2,rightEls=k-k/2,leftPos,rightPos,left,right;if(mid-1 < leftEls){leftPos=1;rightEls=k-mid+1;rightPos=at(a,mid+1,LEN,mid+rightEls);}else{leftPos=mid-leftEls;left=at(a,1,LEN,leftPos);if(LEN-mid<rightEls)rightPos=LEN;else{rightPos=mid+rightEls;right=at(a,1,LEN,rightPos);}}printf("中位数是:%d\n",midEl);for(int i=leftPos;i<=rightPos;i++){if(i!=mid)printf("%d ",a[i]);}getchar();}
0 0
- 算法导论 练习题 9.3-7
- 算法导论 练习题 9.3-6
- 算法导论 练习题 9.3-8
- 算法导论 练习题 9.3-9
- 《算法导论》练习题2.3-7
- 算法导论 练习题 2.3-7
- 算法导论 练习题 3.2-7
- 算法导论 练习题 4.2-7
- 算法导论 练习题 4.3-7
- 算法导论 练习题 4.4-7
- 算法导论 练习题 6.1-7
- 算法导论 练习题 6.5-7
- 算法导论 练习题 10.2-7
- 算法导论 练习题 12.2-7
- 算法导论 练习题 13.1-7
- 算法导论 练习题 13.4-7
- 算法导论 练习题 16.3-7
- 算法导论之2.3-7练习题
- 腾讯云学生机javaWeb项目部署
- JAVA集合一 ——集合结构
- 训练营第六天学习笔记
- Android中activity的详解
- ListView联动(二级联动)简单易懂
- 算法导论 练习题 9.3-7
- 前端工程化工具
- 使用自签名SSL证书配置HTTPS,解决浏览器提示不安全警告
- Web学习之路1:HTML基本标签
- 使用sql语句创建数据库和表
- iOS 使用贝塞尔曲线,报错说是上下文错误
- 实现切换题目的效果
- LeetCode : Length of Last Word
- python交互式解释器