算法分析与设计C++ 寻找中位数 (快速排序版)
2019-09-25 20:42
921 查看
总时间限制: 100ms 内存限制: 65535kB 描述 在N(1 <= N <= 100001 且N为奇数)个数中,找到中位数。
输入 第1行:N
第2行:N个整数 输出 输入的第2行N个整数的中位数。 样例输入 5 2 4 1 3 5 样例输出 3 提示 若使用时间复杂度大于 O(NlogN)的排序算法,会返回 Time Limit Exceeded。 来源 重庆科技学院 WJQ
#include<iostream> using namespace std; void q_sort(int *a, int l, int r){ if(l<r){ int i=l; int j=r; int x=a[i]; while(i<j){ while(i<j&&a[j]>=x) { j--; } if(i<j){ a[i]=a[j]; } while (i<j&&a[i]<x) { i++; } if(i<j){ a[j]=a[i]; } } a[i]=x; q_sort(a,l,i-1); q_sort(a,i+1,r); } } int main() { int n; cin>>n; int a ; for (int i = 0; i < n; i++) { cin>>a[i]; } int mid = sizeof(a)/sizeof(a[0])/2; q_sort(a,0,n); cout<<a[mid]; return 0; }
相关文章推荐
- 算法设计、分析与实现 从入门到精通 C、C++和Java 这本书的堆实现85页C++语言实现有问题
- 【C++学习】【算法学习】算法设计与分析 2- 11整数因子分解问题
- 算法分析与设计C++ 1:猴子吃桃
- 算法分析与设计C++ 2:递归:爬楼梯
- 算法分析与设计C++ 2:递归:爬楼梯
- 算法设计与分析--霍夫曼树编码(C++实现)
- 『嗨威说』算法设计与分析 - 算法第二章上机实践报告(二分查找 / 改写二分搜索算法 / 两个有序序列的中位数)
- 算法分析与设计C++ 1:猴子吃桃
- 算法分析与设计——矩阵连乘问题
- 【算法设计与分析】(4)活动调度问题(贪心算法)
- C++ C++字符串复制函数StrCpy算法设计(三)
- c++基础知识,有现成的函数不用,非的自己设计算法,这不是坑爹吗?
- 数据结构和算法分析c++:向量的实现
- 算法分析与设计作业
- 【算法设计与分析】5个数7次比较排序的算法
- 红黑树的原理分析和算法设计
- 算法分析与设计——递归算法(一)
- 算法分析与设计丨第三周丨LeetCode(5)——Median of Two Sorted Arrays(Hard)
- 算法分析与设计——LeetCode:4. Median of Two Sorted Arrays
- 算法分析与设计课程资料:蚂蚁算法的初步研究与计算机模拟