当前位置: 代码迷 >> C语言 >> [求助]从一个n个元素的数组中寻找第k个最小值
  详细解决方案

[求助]从一个n个元素的数组中寻找第k个最小值

热度:380   发布时间:2007-06-02 19:12:36.0
[求助]从一个n个元素的数组中寻找第k个最小值
刚学C,请会GGJJ帮助一下

从一个n个元素的数组中寻找第k个最小值,并输出
搜索更多相关的解决方案: 元素  

----------------解决方案--------------------------------------------------------
有人刚问过,你找找看
----------------解决方案--------------------------------------------------------
最简单的方法:先将数组排序,然后得到第k个元素就OK了.
ps:不过这个题目有时间复杂度为O(n)的算法
----------------解决方案--------------------------------------------------------

#define n 5
main()
{ int a[n],i,j,k,t;
scanf("%d",&k);
printf("请输入n个数:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{ t=a[i];
a[i]=a[j];
a[j]=t;
}


for(i=0;i<k;i++)
printf("%-3d",a[i]);

}


----------------解决方案--------------------------------------------------------

#define n 5
main()
{ int a[n],i,j,k,t;
scanf("%d",&k);
printf("请输入n个数:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{ t=a[i];
a[i]=a[j];
a[j]=t;
}


printf("%d",a[k-1]);

}


----------------解决方案--------------------------------------------------------
  相关解决方案