给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素。
C语言的编程 哪位高手指点一下 真的是不会啊!!!谢谢了 如果对了 我肯定给加分!!!!
计算机算法题求助!给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素。
答案:4 悬赏:10 手机版
解决时间 2021-02-23 00:24
- 提问者网友:嗝是迷路的屁
- 2021-02-22 06:12
最佳答案
- 五星知识达人网友:鸠书
- 2021-02-22 06:58
先给这n个元素从小到大排个序,再找第k-1个元素就行
#include
void main()
{
int a[n],k;
int i,j,t;
for(i=0;i
for(j=i+1;j
{
if(a[i])>a[j])
{
t=a[i];a[i]=a[j];a[j]=t;
}
}
}
最后a[k-1]就是你要的数啦
#include
void main()
{
int a[n],k;
int i,j,t;
for(i=0;i
if(a[i])>a[j])
{
t=a[i];a[i]=a[j];a[j]=t;
}
}
}
最后a[k-1]就是你要的数啦
全部回答
- 1楼网友:患得患失的劫
- 2021-02-22 10:14
百度文科应该会找到!
- 2楼网友:夜余生
- 2021-02-22 08:56
其实很容易啊
最简单的办法
先排序
排序就选用一种排序手段啊
最简单的冒泡
要快一点用快速排序
再遍历
遍历一下这个线性结构就行了
遍历用循环啊
只需注意两点
1.循环次数等于线性结构的长度
2.每做一次循环就向后一个元素(如何指向向后一个元素)
数组的话就用循环变量做为索引
链表的话就指向下个节点的指针
队列和堆栈一般不会去取第K个元素
或者你先找出最小的数min
再构建个2层的循环嵌套
里层遍历这个结构体
从中找出比最小的大的一个元素并覆盖min的值
外层做k-1次
最后
min就是你想要的
在这里我就不替你写了
自己想想看
看来楼主的基础不太好啊
要多编编程
多读读别人的代码才行啊
- 3楼网友:woshuo
- 2021-02-22 07:59
你这问题好像打错字了吧!~应该是比k小的元素吧?还有这线性是什么形式。即使是线性他也有像数组,队列啊,栈区分啊!
我就以我猜你的意思吧(不知道对不对) 假设有a[n]其中n是给定的值
#include
#define n 50 //假设给定的n是50
#define k 10 //假设k为10
void main()
{
int a[n],b[50],j,i;
for(j=0,i=0;i
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯