一、题目大意

就是求中间的数。

二、AC code

递归快排ac版:

#include <iostream>
#include <stdio.h>
#include <cstring>
#include <vector>
#include <cmath>
#include <algorithm>
#include <set>
#include <cassert>
#include <time.h>
#include <queue>
#include <map>
#include <stack>
#include <bitset>
#include <string>
#include <sstream>
#include <list>
#define INF 0x3f3f3f3fusing namespace std;template <class Type>
Type stringToNum(const string& str)
{istringstream iss(str);Type num;iss >> num;return num;
}//======================================================#define MAXN 250002int a[MAXN];void quickSort(int *arr, int left, int right){int i = left, j = right;int mid = arr[(i+j)/2];while(i <= j){while(arr[i] < mid) i ++;while(arr[j] > mid) j --;if(i <= j){int tmp;tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp;i ++; j --;}}if(i < right) quickSort(arr,i, right);if(left < j) quickSort(arr,left, j);
}int main()
{//freopen("input.txt","r",stdin);int N;cin>>N;for (int i = 1; i <= N; ++i) {scanf("%d",&a[i]);}quickSort(a,1,N);if(N%2) //oddprintf("%d.0\n", a[(N+1)/2]);else {double sum = (double)a[N/2] + (double)a[N/2+1];printf("%.1lf\n", sum / 2);}return 0;
}

可以水过,但是不知道为什么用g++也会WA,用c++ OK
同时因为数的范围过大,用计数排序不靠谱。

#include <iostream>
#include <stdio.h>
#include <cstring>
#include <vector>
#include <cmath>
#include <algorithm>
#include <set>
#include <cassert>
#include <time.h>
#include <queue>
#include <map>
#include <stack>
#include <bitset>
#include <string>
#include <sstream>
#define INF 0x3f3f3f3fusing namespace std;template <class Type>
Type stringToNum(const string& str)
{istringstream iss(str);Type num;iss >> num;return num;
}//======================================================#define MAXN 250002long long a[MAXN];int main()
{//freopen("input.txt","r",stdin);int N;cin>>N;for (int i = 1; i <= N; ++i) {scanf("%lld",&a[i]);}sort(a+1,a+N+1);//oddif(N%2)printf("%lld.0\n", a[(N+1)/2]);else {//printf("%.1lf\n", ((double)a[N/2]+(double)a[(N/2)+1])/2); //ok//ok
//      double sum = (double)a[N/2]+(double)a[(N/2)+1];
//      printf("%.1lf\n",sum / 2);printf("%.1lf\n", (double)(a[N/2]+a[(N/2)+1])/2);}return 0;
}

stl二分会超时:

#include <iostream>
#include <stdio.h>
#include <cstring>
#include <vector>
#include <cmath>
#include <algorithm>
#include <set>
#include <cassert>
#include <time.h>
#include <queue>
#include <map>
#include <stack>
#include <bitset>
#include <string>
#include <sstream>
#include <list>
#define INF 0x3f3f3f3fusing namespace std;template <class Type>
Type stringToNum(const string& str)
{istringstream iss(str);Type num;iss >> num;return num;
}//======================================================#define MAXN 250002vector<int > v;//有序数组递减排列
int  binarySearch(vector<int > array,int len,int value){int mid=0;int low=0;int high=len-1;while(low<=high){mid=(low+high)/2;if(array[mid]>value){       //在右半区low=mid+1;continue;}else if(array[mid]<value){  //在左半区high=mid-1;continue;}elsereturn mid;             //找到}return low;  //insert pos
}int main()
{//freopen("input.txt","r",stdin);int N;cin>>N;for (int i = 1; i <= N; ++i) {long long tmp;scanf("%lld",&tmp);int pos = binarySearch(v,i-1,tmp);v.insert(v.begin() + pos, tmp);}if(N%2) //oddprintf("%lld.0\n", v[(N+1)/2-1]);elseprintf("%.1lf\n", (double)(v[N/2-1]+v[N/2])/2);return 0;
}

poj 2623 快排相关推荐

  1. c语言程序快排,C语言快排

    C语言使用快排的方式有两种,1.直接用库函数stdlib.h里的qsort函数 2.自己编写快排代码(第一种方便,第二种较为自由) qsort 的函数原型是: void qsort(void*base ...

  2. 快速排序(快排)--->注释超详细

    基本思想:         1.先选取一个基准值(一般选取数组第一个元素).         2.以第一步选取的基准值为标准,然后从最后一个数值开始一步步向前走将数字与基准值进行比较,如果该值大于基准 ...

  3. java快排算法解读,java 快排的思路与算法

    java 快排的思路与算法 有时候面试的时候的会问道Arrays.sort()是怎么实现的,我以前根本不知道是什么东西,最近点进去看了一下.直接吓傻, //看到这个时候还是比较淡定的,可怕的事情来了. ...

  4. java 快排_八大排序-快速排序(搞定面试之手写快排)

    概要 快速排序由C. A. R. Hoare在1960年提出,是八大排序算法中最常用的经典排序算法之一.其广泛应用的主要原因是高效,核心算法思想是分而治之.快速排序经常会被作为面试题进行考察,通常的考 ...

  5. 排序(一)归并、快排、优先队列等(图文具体解释)

    排序(一) 0基础排序算法 选择排序 思想:首先,找到数组中最小的那个元素.其次,将它和数组的第一个元素交换位置.再次.在剩下的元素中找到最小的元素.将它与数组的第二个元素交换位置. 如此往复,直到将 ...

  6. 快排递归非递归python_Python递归神经网络终极指南

    快排递归非递归python Recurrent neural networks are deep learning models that are typically used to solve ti ...

  7. ACdream 1099——瑶瑶的第K大——————【快排舍半,输入外挂】

    瑶瑶的第K大 Time Limit:2000MS     Memory Limit:128000KB     64bit IO Format:%lld & %llu Submit Status ...

  8. 冒泡链表排序java_链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)...

    以下排序算法的正确性都可以在LeetCode的链表排序这一题检测.本文用到的链表结构如下(排序算法都是传入链表头指针作为参数,返回排序后的头指针) struct ListNode { int val; ...

  9. python实现快排算法(quicksort)

    python实现快排算法(quicksort) 快速排序是对冒泡排序的一种改进.它的基本思想是:通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后 ...

最新文章

  1. Redis3.0.5配置文件详解
  2. HTTP请求格式和HTTP响应格式
  3. Leetcode 739. 每日温度 (每日一题 20211014)
  4. matlab 聚类 源程序,聚类——KFCM的matlab程序
  5. Abp框架多租户源码解读
  6. 安装win10和ubuntu16双系统
  7. 腾讯会议瞩目会议开启共享屏幕时候出现卡顿时候,是显卡问题。
  8. c++早绑定和晚绑定
  9. LGame-0.3(Android与JavaSE游戏引擎)正式发布,新增SRPG制作模块
  10. HDFS常用命令总结
  11. MATLAB中神经网络工具箱的使用
  12. python批量转换音频采样率
  13. 明天9:00 | ECCV 2022 全球博士TalK——计算机视觉领域顶会
  14. html页面字体飞入飞出特效,JS网页特效:星空飞入效果
  15. VC MFC按钮(CButton)控件
  16. 临床执业助理医师(综合练习)题库【5】
  17. 在PPT中怎么对图片进行排版?使用SmartArt一键教你搞定!
  18. Windows系统实现共享文件夹——通过无账号密码方式访问
  19. 网上赚钱风口,捡芝麻丢西瓜
  20. 货币兑换java程序,货币兑换API Java GUI

热门文章

  1. 7 项目人力资源管理
  2. zipoutputstream压缩文件响应到浏览器_现代浏览器内部机制之导航这件小事
  3. java 采集rtsp_通过Java程序调用RTSP拉流协议视频平台EasyNVR程序接口步骤概览
  4. 新国货品牌数字营销系列报告丨探析鞋服行业数字营销一体化建设
  5. 看图说话:用户标签可以这样轻松创建
  6. 大数据和人工智能的关系,超全解析
  7. 互联网推广方案:如何提高企业网站排名!
  8. 竞品调研时发现的Android新设计特性
  9. 由SecureCRT引发的思考和学习
  10. 简易调用及实例化视图