6-1 简单快速排序分数 10作者 唐艳琴单位 中国人民解放军陆军工程大学本题要求实现一个函数,可快速查找给定x(保证是整个数据中其值存在,如果x有多个,查找第一个x)在整个数据中的排名(数据
6-1 简单快速排序
分数 10
全屏浏览题目
切换布局
作者 唐艳琴
单位 中国人民解放军陆军工程大学
本题要求实现一个函数,可快速查找给定x(保证是整个数据中其值存在,如果x有多个,查找第一个x)在整个数据中的排名(数据从大到小排列)情况,函数返回其排名(最大值为第1名,相同值的依次向后排名,即排名没有并列)。
函数接口定义:
int sort(int a[],int n,int x);
其中 a
和 x
都是用户传入的参数。 n
为元素个数, x
为等查数据。函数须返回 x
的排名。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如: #include <stdio.h> #define N 1000 int sort(int a[],int n,int x); int main() { int i,n,x,pos,a[N]; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); scanf("%d",&x); pos=sort(a,n,x); printf("%d pos: %d",x,pos); return 0; } /* 请在这里填写答案 */
输入样例:
10
12 83 83 45 64 32 123 83 79 96
83
输出样例:
83 pos: 3
表示第1个83排名第2
代码长度限制
16 KB
时间限制
5 ms
内存限制
1 MB
#include<iostream>
#include<algorithm>
using namespace std;
int Position(int a[], int low, int high)
{int i = low, j = high, pivot = a[low];while (i < j){while (i<j && a[j]>pivot){j--;}if (i < j){swap(a[i++], a[j]);}while (i<j && a[i]<pivot){i++;}if (i < j){swap(a[i], a[j--]);}}return i;
}
void QuickSort(int a[], int low, int high)
{if (low < high){int mid = Position(a, low, high);QuickSort(a, low, mid - 1);QuickSort(a, mid + 1, high);}
}
int main()
{int n;cin >> n;int a[100] = { 0 };for (int i = 0; i < n; i++){cin >> a[i];}QuickSort(a, 0, n - 1);int x;cin >> x; int count = 1;for (int i = n - 1; i > 0; i--){if (a[i] == x){break;}count++;}cout << x << " pos: " << count << endl;
}
6-1 简单快速排序分数 10作者 唐艳琴单位 中国人民解放军陆军工程大学本题要求实现一个函数,可快速查找给定x(保证是整个数据中其值存在,如果x有多个,查找第一个x)在整个数据中的排名(数据相关推荐
- 7-1 h0168. 田忌赛马分数 10作者 黄正鹏单位 贵州工程应用技术学院田忌与齐王赛马,双方各有n匹马参赛,每场比赛赌注为200两黄金,现已知齐王与田忌的每匹马的速度,并且齐王肯定是按马
7-1 h0168. 田忌赛马 分数 10 全屏浏览题目 切换布局 作者 黄正鹏 单位 贵州工程应用技术学院 田忌与齐王赛马,双方各有n匹马参赛,每场比赛赌注为200两黄金,现已知齐王与田忌的每匹马的 ...
- PTA 6-6 分数 分数 10 作者 翁恺 单位 浙江大学
题目: 裁判测试程序样例: #include <iostream> using namespace std;/* 请在这里填写答案 */int main(void) {Fraction f ...
- 7-2 高精度求累加和 分数 25作者 胡伟平单位 广西科技大学
使用求和公式求1到N的累加和大家都会,但是如果把N值变大呢,比如100位的整数,那该怎么求? 输入格式: 输入在一行中给出1个位数不超过100位的整数N. 输出格式: 对每一组输入,在一行中输出1+2 ...
- 11-散列1 电话聊天狂人分数 25作者 DS课程组单位 浙江大学
给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤105),为通话记录条数.随后N行,每行给出一条通话记录.简单起见,这里只列出拨出方和接收方的11位数字 ...
- 7-1 最大公约数和最小公倍数分数 15作者 张彤彧单位 浙江大学
本题要求两个给定正整数的最大公约数和最小公倍数. 输入格式: 输入在一行中给出两个正整数M和N(≤1000). 输出格式: 在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔. 输入 ...
- 为什么说 Java 中只有值传递?
对于初学者来说,要想把这个问题回答正确,是比较难的.在第二天整理答案的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到哪篇文章可以把这个事情讲解的通俗易懂. ...
- 为什么说Java中只有值传递(另一种角度)
转载自 为什么说Java中只有值传递 对于初学者来说,要想把这个问题回答正确,是比较难的.在第二天整理答案的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到 ...
- 为什么Java中只有值传递
原文链接:https://www.cnblogs.com/wchxj/p/8729503.html 在开始深入讲解之前,有必要纠正一下大家以前的那些错误看法了.如果你有以下想法,那么你有必要好好阅读本 ...
- mysql中null值求和_sql求和涉及到null值
SQL ISNULL().NVL().IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表: P_Id ProductName UnitPrice ...
最新文章
- RabbitMQ 可靠消息传输实战--云平台技术栈12
- 动态域名作为dga的做法
- 洛谷 P3805 manacher算法
- 具有Spring Boot和Java配置的Spring Batch教程
- 研究员详述巴基斯坦黑客如何攻击印度和阿富汗政府
- 绝对定向 c++_【007】Linux重定向、管道符及环境变量(看这一文就够了)
- Window10上使用Git与Github远程仓库互连
- Linux网络子系统中协议栈的入口处理
- 跟据URL来实现WebService
- useragent 全集 firefox插件 useragetn switch 使用
- Apache POI Word中复制表格
- 重复线性渐变repeating-linear-gradient
- 使用Crucible和FishEye链接svn库时遇到尝试添加或索引存储库时出现错误-版本中不存在的问题
- win7系统怎么用笔记本做wifi热点(转)
- iherb中文海淘攻略-- IHERB目前的优惠
- 二叉树交换左右子树的递归与非递归算法
- Airsim中运行OpenVINS和VINS_Fusion
- 【HTML】HTML5给网页音频带来的变化
- java入门~第十六天 对象数组以及集合和相关数据结构
- 怎么用Photoshop做出物体的投影效果出来