标题:[原创]排序算法效率比较
只看楼主
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
回复:(aogun)昨天没时间一般来说,对于有很多同样格...
谢谢了,知道怎么联系他们了,觉得这个指针放数组和相关内容的关联的确是很重要也是很必要的一个知识

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-27 19:24
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 

正如你说的那样,改过以后清晰很多

[此贴子已经被作者于2006-7-28 12:59:48编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-28 12:58
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
我按照你说的改了下:
程序代码:
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <fstream>
using namespace std;

class Timer
{
    clock_t start_time;
public:
    Timer(){start_time=clock();}

    void elaspe()
    /*计算时间*/
    {
        clock_t end_time=clock();
        cout<<"It takes "<<(double)(end_time-start_time)/(double)CLK_TCK<<"seconds\n";
    }
    /*时间归零*/
    void reset(){start_time=clock();}
};


#define maxSortNum 4    /*定义排序算法的个数(种类)*/
class CCompositor
{
    int *a;
public:
    CCompositor(){a=NULL;}
    ~CCompositor(){delete []a;}
    void FileMenu();
    void Initional(int i);
    void GetFile(ifstream&is,int size);
    void doCompose(int n);
    void sort_1();
    void sort_2();
    void sort_3();
    void sort_4();
};


typedef void (CCompositor::*sort)();
sort g_x[] = {&CCompositor::sort_1, &CCompositor::sort_2, &CCompositor::sort_3, &CCompositor::sort_4};


struct SortStruct 
{
    int m_iIndex;    //索引
    char* m_pChoice; //文件类型
    char* m_pFile;     //文件路径
    int m_iInfoSize; //文件大小
};


SortStruct sortArr[]={
    1, "      1. 数据长度20个,   顺序\n",    "order20.txt",            20,
        2, "      2. 数据长度200个,  顺序\n",    "order200.txt",            200,
        3, "      3. 数据长度2000个, 顺序\n",      "order2000.txt",            2000,
        4, "      4. 数据长度20个,   逆序\n",      "unOrder20.txt",            20,
        5, "      5. 数据长度200个,  逆序\n",      "unOrder200.txt",            200,
        6, "      6. 数据长度2000个, 逆序\n",      "unOrder2000.txt",        2000,
        7, "      7. 数据长度20个,   随机\n",      "noOrder20.txt",            20,
        8, "      8. 数据长度200个,  随机\n",      "noOrder200.txt",            200,
        9, "      9. 数据长度2000个, 随机\n",      "noOrder2000.txt",        2000,
        10,"      10.数据长度20个,   部分排序\n","partlyOrder20.txt",        20,
        11,"      11.数据长度200个,  部分排序\n","partlyOrder200.txt",        200,
        12,"      12.数据长度200个,  部分排序\n","partlyOrder2000.txt",    2000,
};


void CCompositor::sort_1()
{
    //增加代码,完成你的算法
}

void CCompositor::sort_2()
{
    //增加代码,完成你的算法
}

void CCompositor::sort_3()
{
    //增加代码,完成你的算法
}

void CCompositor::sort_4()
{
    //增加代码,完成你的算法
}

void CCompositor::GetFile(ifstream&is,int size)
{
    //if(!is)exit(1);
    delete a;a=NULL;
    a=new int[size];
    for(int i=0;i<size;i++)
    is>>a[i];
}


void CCompositor::FileMenu()
/*列出所有不同类型的数据*/
{
    cout<<"         算法比较数据文件目录\n";
    cout<<"      ——————————————"<<endl;
    for (int i=0;i<sizeof(sortArr)/sizeof(SortStruct);i++)
    {
        cout<<sortArr[i].m_pChoice;
    }
    cout<<"请选择...";
}
void CCompositor::Initional(int i)
/*根据不同的文件数据进行数据加载*/
{
    ifstream is;
    is.open(sortArr[i-1].m_pFile);
    GetFile(is,sortArr[i-1].m_iInfoSize);
    is.close();
}


int _tmain(int argc, _TCHAR* argv[])
{
    CCompositor compose;
    compose.FileMenu();
    int choice;cin>>choice;
    compose.Initional(choice);
    Timer time;
    for(int j=0;j<sizeof(g_x)/4;j++)
    {
        g_x[j];    
        time.elaspe();
        time.reset();
    }
    return 0;
}

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-28 12:58
farderce
Rank: 1
来 自:上海
等 级:新手上路
帖 子:146
专家分:3
注 册:2006-1-11
得分:0 

排个顺序还要用个函数 切

2006-07-30 16:14
blpluto
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-11-3
得分:0 

看了楼上的精彩评论 收益匪浅啊
不过我有个想法 既然是测试排序的效率 那应该不用如此复杂的程序
time()函数可设计为顶层函数
还有,我觉的这个程序没有必要用类,
用简单的程序就可以了 不需要封装


ANYTHING IS POSSIBLE!!
2006-11-03 16:40
shengwumozhe
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2006-10-24
得分:0 
以下是引用song4在2006-7-27 15:15:15的发言:
555555555
我实在太小了,根本看不懂
还没学数据呢

同感=,-


自信,微笑^_^
2006-11-03 17:29
cxmprogramer
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-1-15
得分:0 

为什么用_tmain啊,它跟main有什么区别吗?

2007-01-19 11:20
peswe
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2006-11-22
得分:0 
腾云驾雾中!!~~~~~~~~~~~~~

C斗士~~~fighting!!!!
2007-01-20 13:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-80375-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040750 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved