#include <iostream>
using namespace std;
int quickSort(int *a,int left,int right);
void search(int *a,int i,int j,int k,int l);
//主函数
int main()
{
int n,k1,k2,i;
int a[100];
cout<<"请输入数组个数:"<<endl;
cin >> n ;
cout<<"请输入数组中的数:"<<endl;
for ( i = 1; i <= n; ++i)
{
cin >> a[i];
}
cout<<"请输入k1、k2的值:"<<endl;
cin >> k1>>k2;
cout<<"第"<<k1<<"小的数到第"<<k2<<"小的数是:"<<endl;
search(a,1,n,k1,k2);
cout<<endl;
return 0;
}
//一次快速排序,返回被定位元素的位置
int quickSort(int *a,int left,int right)
{
int i,j,temp;
i=left;
j=right;
temp=a[left];
if(left>right)
return -1;
while(i!=j)
{
while(a[j]>=temp && j>i)
j--;
if(j>i)
a[i++]=a[j];
while(a[i]<=temp && j>i)
i++;
if(j>i)
a[j--]=a[i];
}
a[i]=temp;
return i;
}
//分治查找第k大的元素
void search(int *a,int i,int j,int k,int l)
{
int temp;
//得到第i个元素被定位的下标
temp = quickSort(a,i,j);
//在范围内说明找到了
if(i<=j){
if (temp >= k&&temp<=l)
{
cout<<a[temp]<<" ";
}
//,往左缩小查找范围
search(a,i,temp-1,k,l);
//往右缩小超找范围
search(a,temp+1,j,k,l);
}
}
fenzhi.zip_K.
版权申诉
23 浏览量
2022-09-24
04:27:32
上传
评论 2
收藏 815B ZIP 举报
alvarocfc
- 粉丝: 105
- 资源: 1万+
最新资源
- 人工智能实验四 感知器算法的设计实现
- java小项目多线程多线程 复制文件 冒泡排序 群聊
- 四数之和(java代码).docx
- 701837906919458TapScanner v3.0.10 (Pro).apk
- 青岛大学人工智能实验二 利用α-β搜索的博弈树算法编写一字棋游戏
- ### 1、项目介绍 本项目Scrapy进行数据爬取,并使用Django框架+PyEcharts实现可视化大屏 效果如下:
- # 微信小程序-健康菜谱 基于微信小程序的一个查找检索菜谱的应用 ### 效果 !动态图(./res/gif/demo
- zabbix-get命令包资源
- 289ssm-mysql-jsp 计算机课程实验管理系统.zip(可运行源码+数据库文件+文档)
- 毕业设计,基于PyQt5实现的可视化界面的Python车牌自动识别系统源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈