computer 版 (精华区)

发信人: remember (Learning C++), 信区: program
标  题: Re: 找第n个最小数
发信站: 听涛站 (2001年10月13日21:05:47 星期六), 站内信件

  显然,如果只需要找最小数我们可以用如下方式:
  int find_smallest(int i, int numbers[], int &result, int n=1)
  {
     if (i==1){
       result = numbers[0];
     }else if (i==2){
       if (numbers[0]<numbers[1])
           result = numbers[0];
       else
           result = numbers[1];
     }else{
       find_smallest(i/2,numbers,a);
       find_smallest(i-i/2,&numbers[i/2],b);
       if (a<b)
           result = a;
       else
           result = b;
     }
     return 1;
  }
  显然没有进行完全排序啊~~~

【 在 gutentag ( Bonjour && deeply in LOVE on the web ) 的大作中提到: 】
: 先用 quick sort 排序不就可以了吗?
: 【 在 remember (Learning C++) 的大作中提到: 】
: :     给出一组数(无序,共i个),要求找出其第n个最小数。
: :     如何编程实现?
: :     同样,大家说说想法吧~~~~
: :     int find_n_smaller(int i, int numbers[], int n, int &result);


--
    洛阳亲友如相问  一片冰心在玉壶
※ 来源:·听涛站 tingtao.dhs.org·[FROM: 匿名天使的家] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.728毫秒