比较数据排序前后的查找次数

傻根98

傻根98

2016-01-29 12:15

比较数据排序前后的查找次数,比较数据排序前后的查找次数

比较数据排序前后的查找次数
作者:宋科
作者主页:kesongemini.diy.163.com

下载本文源代码

题目:
随机产生 1000 个 1-2000 以内的互不相同的整数,
1)存储于一个数组中(不排序)
2)存储于一个数组中(排序)
分别应用查找运算,要求输入一个查找元素,输出各自的查找比较次数。

要求:
1)查找元素 2
2)查找元素 1000


目的:
练习一下C++的神仙眷侣所提倡的用“类”来表达观点的编程风格。

用类来思考:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

查找(CFind)是一个概念,作用于特定的数据(CData),因为数据有各种不同的特性,有排序了的(CDataSorted),和没有排序过的(CDataChaos),对于不同特性的数据,应该应用不同的查找方法, 对于排序过的数据(CDataSorted),应该使用一种查找方法(CFindBinarySearch), 对于没有排序过的数据(CDataChaos),应该使用另一种查找方法(CFindWorker), 呵呵,所以产生了如下的类图:

            +----------+  +-------+            +  CFind   +<>-------------------------->+ CData +            +-+------+-+  +---+---+              ^      ^        ^              ^      ^                          +--------+------+              ^      ^                          ^               ^  +-----------+-+  +-+-----------------+  +-----+-------+   +---+--------+       + CFindWorker +  + CFindBinarySearch +  + CDataSorted +   + CDataChaos +       +-------------+  +-------------------+  +-------------+   +------------+
这样的话,用户就可以通过派生CData类来加入新的存储格式的数据,通过派生CFind类来加入新的查找方法了, 不过,一般来说,查找方法都是和数据存储方式紧密耦合的,所以,嘿嘿嘿,..., 请注意我的目的呀,我只是为了练习C++才这样写的,哈哈:) 我想一定会有很多人大骂我白痴的吧,哈哈哈哈~~哈哈哈哈,就当耳旁风,不听。:)

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

数据的基类:(每个类的实现请在本文提供的源代码中查找)

class CData{public:CData();CData(int iNum, int iMax); // generate the data : _vvirtual ~CData(){};CData(const CData& rhs);void get_data(vector& v);protected:vector _v;private:CData& operator=(const CData& rhs);const int _iMin;};
排序数据类:
class CDataSorted : public CData{public:CDataSorted(CData rhs);virtual ~CDataSorted(){};private:CDataSorted();CDataSorted& operator=(const CDataSorted& rhs);};
原始数据类:
class CDataChaos : public CData{public:CDataChaos(CData rhs);virtual ~CDataChaos(){};private:CDataChaos();CDataChaos& operator=(const CDataChaos& rhs);};
查找的基类:
class CFind{public:CFind(const CData& data);virtual ~CFind();virtual bool to_find(int elem, int& num);protected:CData* _pdata;private:CFind& o      
展开更多 50%)
分享

猜你喜欢

比较数据排序前后的查找次数

C语言教程 C语言函数
比较数据排序前后的查找次数

排序算法比较程序

编程语言 网络编程
排序算法比较程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

数据排序及如何动态排序

ASP
数据排序及如何动态排序

练习顺序查找、折半查找及二叉排序树的实现

编程语言 网络编程
练习顺序查找、折半查找及二叉排序树的实现

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Excel教程:数据排序的技巧

办公软件
Excel教程:数据排序的技巧

精彩的表数据排序分组

SQLServer
精彩的表数据排序分组

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

JSP应用程序开发中安全问题的实例解析

JSP应用程序开发中安全问题的实例解析

用定制标签库和配置文件实现对JSP页面元素的访问控制

用定制标签库和配置文件实现对JSP页面元素的访问控制
下拉加载更多内容 ↓