当前位置: 首页 > news >正文

第k小的数的分治算法

include

using namespace std;
int x=100;
int rr(int b[],int left,int right)
{
int m=left,n=right+1;
int h=b[left];
while(1)
{
while(b[++m]<h&&m<right);
while(b[--n]>h);
if(m>=n)
{
break;
}
int change=b[m];
b[m]=b[n];
b[n]=change;
}
b[left]=b[n];
b[n]=h;
return n;
}
void sort(int b[],int left,int right,int pd)
{
//cout<<left<<" "<<right<<endl;
if(left>=right)
{x=b[right];
return;}
int new1=rr(b,left,right);
//cout<<new1<<" "<<b[new1]<<endl<<endl;
//cout<<new1<<endl;
//cout<<b[new1]<<endl;
if(new1==pd-1)
{
x=b[new1];
return;
}
else if(new1>pd-1)
{
sort(b,left,new1-1,pd);//new1-1
}
else
{
sort(b,new1+1,right,pd);
}
}
int main()
{
int a;
int pd;
int b[100000];
cin>>a;
cin>>pd;
for(int y=0;y<a;y++)
{
cin>>b[y];
//cout<<b[y]<<endl;
}
sort(b,0,a-1,pd);
cout<<x<<endl;
/for(int y=0;y<a;y++)
{
cout<<b[y]<<" ";
}
/
return 0;
}

1、首先选取数组第一个元素作为基准,将数组划分为两部分:左部分的元素是小于基准的,右部分的元素是大于等于基准的,最后返回基准的最终位置。然后进行递归查找,先计算这个基准是当前数组第几小的元素,若刚好等于k,就返回主元;若小于k,递归查找左子数组;若大于k递归查找右子数组。直至return一个程序要求的值——pd-1,返回该元素。
2、最好时间复杂度:O(n)
最坏时间复杂度:O(n²)
3、分治算法就是把一个问题分成若干个独立并且求解方法相同的子问题,一般通过递归求其最优解,再合并子问题。这个算法可以让解决问题变得更简单,当然不是所有问题都可以使用,需要具体分析。

http://www.jsqmd.com/news/29341/

相关文章:

  • Day29-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\reflect
  • k8s-Pod中的网络通信(3)
  • 一个灵感:思维的断章
  • 第十届中国大学生程序设计竞赛 哈尔滨站(CCPC 2024 Harbin Site)
  • CSP-S 回顾
  • https://heylink.me/tizihacks/
  • 2025CSP-J游记
  • 通达信:引用函数 - Leone
  • 20231427田泽航第七周预习报告
  • CSP总结
  • AI泡沫再思考:技术革命与投资狂潮的真相
  • [群表示论]基本概念
  • P14362 [CSP-S 2025] 道路修复
  • 10.30总结
  • 基于 Maxwell 实现 MySQL 数据实时迁移到 Mongodb
  • CSP2025-S 坠机记
  • jenkins安装排错
  • 一、RK3562板卡上手
  • 【题解】CCPC 2024 Jinan Site [J] Temperance
  • 2025 年 11 月金属件去毛刺机,五金去毛刺机,自动去毛刺机厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读!
  • 原来求凸包这么简单
  • 2025 年 11 月全自动激光去毛刺机,金属件去毛刺机,自动去毛刺机厂家最新推荐,精准检测与稳定性能深度解析!
  • 2025 年 11 月数控激光去毛刺机,冲压件去毛刺机,精密去毛刺机厂家最新推荐,实力品牌深度解析采购无忧之选!
  • AT ARC156C Tree and LCS 题解
  • 2025 年 11 月回转式风机厂家最新推荐,实力品牌深度解析采购无忧之选!
  • CSPT漏洞浅析
  • 【题解】CCPC 2024 Jinan Site [F] The Hermit
  • Ubunt 搭建Samba服务
  • 2025 年 11 月精密无缝钢管,镀锌无缝钢管,定制无缝钢管厂家最新推荐,产能、专利、环保三维数据透视!
  • 2025 年 11 月合金无缝钢管,大口径无缝钢管,厚壁无缝钢管厂家最新推荐,技术实力与市场口碑深度解析!