社区
数据结构与算法
帖子详情
分治法实现元素选择问题!!!
xiaomubiao
2004-04-30 12:15:06
给定线形序列集中n个元素和一个整数k,1≤k≤n,输出这n个元素中第k小元素的值及其位置。;
...全文
477
2
打赏
收藏
分治法实现元素选择问题!!!
给定线形序列集中n个元素和一个整数k,1≤k≤n,输出这n个元素中第k小元素的值及其位置。;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
aheadyes
2004-04-30
打赏
举报
回复
#include<stdlib.h>
#include<time.h>
#include<stdio.h>
#define Swap(a,b) {int t=b; b=a; a=t;}
int partition(int a[],int L, int r)
{
int i = L-1,j=r;
int v = a[r];
while(1)
{
while(a[++i] < v);
while(v < a[--j]) if(j==L) break;
if(i>=j) break;
Swap(a[i],a[j]);
}
Swap(a[i],a[r]);
return i;
}
int RandomPartition( int a[], int l, int r)
{
srand(time(0));
int i = rand()%(r-l+1)+l;//随机划分:
Swap(a[i],a[r]);
return partition(a,l,r);
}
int RandomSelect(int a[], int l, int r, int k)
{
if(r<=l) return a[r];
int i= RandomPartition(a,l,r);
int j = i-l+1;
if(j == k)
return a[i];
if(j>k)
return RandomSelect(a,l,i-1,k);
else
return RandomSelect(a,i+1,r,k-j);
}
void disp(int a[],int n)
{
for(int i=0; i<n; i++)
printf("%d ", a[i]);
}
int main()
{
int a[]={1,12,3,-4,81,16,100,17};
disp(a,8);
int k;
printf("\nplease input the k:");
scanf("%d",&k);
printf("\n the %d's Big Number is : %d ",k,RandomSelect(a,0,7,k));
system("pause");
}
BlueSky2008
2004-04-30
打赏
举报
回复
http://expert.csdn.net/Expert/topic/2642/2642994.xml?temp=.6752436
java数据结构(Java版)(第3版)[叶核亚] 全套资料
分治策略将大
问题
分解为小
问题
,如快速排序和归并排序就是
分治法
的典型应用。 十二、动态规划 动态规划是解决最优化
问题
的有效方法,通过构建状态转移方程,避免重复计算,如背包
问题
、最长公共子序列等。 十三、...
十三个经典算法研究PDF文档[带目录+标签]
8. **
分治法
**:如Strassen矩阵乘法和快速傅里叶变换(FFT),这些方法将大
问题
分解为小
问题
,然后合并小
问题
的解,是高效解决复杂计算
问题
的重要方法。 9. **贪心+动态规划**的混合算法:例如活动
选择
问题
和最小生成...
1000多种java算法大全源码包
- **活动
选择
问题
**:如区间调度
问题
。 - **最小生成树**:Prim和Kruskal算法的贪心思想。 - **霍夫曼编码**:构建最优前缀码。 7. **回溯法** - **八皇后
问题
**:棋盘上放置皇后不冲突。 - **数独解法**:...
Java40道最经典算法
- **
选择
排序**:每次找到未排序部分的最大(小)
元素
,放到正确的位置上。 - **插入排序**:将
元素
逐个插入已排序的部分,保持有序状态。 - **快速排序**:采用分治策略,选取一个基准
元素
,将数组分为两部分,...
用
分治法
实现
元素
选择
实验内容: 1、给定线形序列集中n个
元素
和一个整数k,1≤k≤n,输出这...测试要求:
元素
个数不少于100// SelectK.cpp :
分治法
选择
第k 小的
元素
。// VC++6.0 下测试通过#include #include #include // 交换两个变量的值
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章