注册 登录
编程论坛 C++教室

求各路大声解决

chamberlain 发布于 2014-09-18 23:48, 485 次点击
随机生成100000(十万)个整数,采取面向对象的方法利用冒泡排序和快速排序两种算法实现这些整数的排序,并输出每种排序耗费的时间。
5 回复
#2
fl89622014-09-19 07:52
回复 楼主 chamberlain
你这个问题不完整,随机生成十万个整数,那这10万个整数的范围是多少?从0到无穷大?还是怎的?
说实在的,感觉你这个问题不难。但是一句面向对象的方法,把我给唬住了。面向对象是什么我也不懂
等后来的大神讲解。。。
#3
wp2319572014-09-19 09:20
c++  我也不会
#4
erty10012014-09-19 20:41
简单说说:
这都不会?
太简单了,
首先class Number
{
 public:
//包含构造函数
//析构函数
//包含更加重要的排序方法1
//排序方法2


private:
//包含一个整形数组的指针
}

 使用的时候先定义一个对象,再调用两种排序方法,外界统计时间也行
#5
七夜之华2014-09-19 20:58
扑通,面向对象,随机数。
#6
fl89622014-09-20 00:31
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<vector>
#include<string>
#include<time.h>
using namespace std;
class data
{
   public:
   void Insert()
   {
     long i=100000;
     long var;
     while(i!=0)
     {
        srand(time(NULL));
        var=rand()%200000;
        d.push_back(var);
        i--;
     }
   }
   void Sort()
   {
     long i=0;
     long j=0;
     long compare;
     for(i=0;i!=99999;++i)
       for(j=i+1;j!=100000;++j)
         {
             if(d[i]>d[j])
               {
                 compare=d[i];
                 d[i]=d[j];
                 d[j]=compare;
               }
         }

    }
   private:
   vector<long> d;
};
int main(void)
{
    data run;
    time_t begin=time(NULL);
  run.Insert();
    run.Sort();
    time_t end=time(NULL);
    cout<<(end-begin)<<endl;
    return 0;
}
测试了一下 49 秒
只用了一种方法,另一种也大同小异。不知道有没有满足你呀,美女?
1