永发信息网

计算机算法题求助!给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素。

答案:4  悬赏:10  手机版
解决时间 2021-02-23 00:24
给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素。
C语言的编程 哪位高手指点一下 真的是不会啊!!!谢谢了 如果对了 我肯定给加分!!!!
最佳答案
先给这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]就是你要的数啦
全部回答
百度文科应该会找到!
其实很容易啊 最简单的办法 先排序 排序就选用一种排序手段啊 最简单的冒泡 要快一点用快速排序 再遍历 遍历一下这个线性结构就行了 遍历用循环啊 只需注意两点 1.循环次数等于线性结构的长度 2.每做一次循环就向后一个元素(如何指向向后一个元素) 数组的话就用循环变量做为索引 链表的话就指向下个节点的指针 队列和堆栈一般不会去取第K个元素 或者你先找出最小的数min 再构建个2层的循环嵌套 里层遍历这个结构体 从中找出比最小的大的一个元素并覆盖min的值 外层做k-1次 最后 min就是你想要的 在这里我就不替你写了 自己想想看 看来楼主的基础不太好啊 要多编编程 多读读别人的代码才行啊
你这问题好像打错字了吧!~应该是比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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯