回复:(aogun)昨天没时间一般来说,对于有很多同样格...
谢谢了,知道怎么联系他们了,觉得这个指针放数组和相关内容的关联的确是很重要也是很必要的一个知识
" target="_blank">[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
正如你说的那样,改过以后清晰很多
[此贴子已经被作者于2006-7-28 12:59:48编辑过]
#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; }
排个顺序还要用个函数 切
看了楼上的精彩评论 收益匪浅啊
不过我有个想法 既然是测试排序的效率 那应该不用如此复杂的程序
time()函数可设计为顶层函数
还有,我觉的这个程序没有必要用类,
用简单的程序就可以了 不需要封装
为什么用_tmain啊,它跟main有什么区别吗?