C++数据结构.ppt

上传人:王** 文档编号:158885 上传时间:2023-02-27 格式:PPT 页数:56 大小:748KB
下载 相关 举报
C++数据结构.ppt_第1页
第1页 / 共56页
C++数据结构.ppt_第2页
第2页 / 共56页
C++数据结构.ppt_第3页
第3页 / 共56页
C++数据结构.ppt_第4页
第4页 / 共56页
C++数据结构.ppt_第5页
第5页 / 共56页
C++数据结构.ppt_第6页
第6页 / 共56页
C++数据结构.ppt_第7页
第7页 / 共56页
C++数据结构.ppt_第8页
第8页 / 共56页
C++数据结构.ppt_第9页
第9页 / 共56页
C++数据结构.ppt_第10页
第10页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C++数据结构.ppt》由会员分享,可在线阅读,更多相关《C++数据结构.ppt(56页珍藏版)》请在优知文库上搜索。

1、 学 号 姓 名 性 别 籍 贯 出 生 年 月 1 98131 刘 激 扬 男 北 京 1979.12 2 98164 衣 春 生 男 青 岛 1979.07 3 98165 卢 声 凯 男 天 津 1981.02 4 98182 袁 秋 慧 女 广 州 1980.10 5 98203 林 德 康 男 上 海 1980.05 6 98224 洪 伟 男 太 原 1981.01 7 98236 熊 南 燕 女 苏 州 1980.03 8 98297 宫 力 男 北 京 1981.01 9 98310 蔡 晓 莉 女 昆 明 1981.02 10 98318 陈 健 男 杭 州 1979.12“

2、课程课程”表格表格 课程编号 课 程 名 学时 024002 程序设计基础 64 024010 汇编语言 48 024016 计算机原理 64 024020 数据结构 64 024021 微机技术 64 024024 操作系统 48 024026 数据库原理 48 选课单包含如下信息选课单包含如下信息 (ADTs: Abstract Data Types)ADT NaturalNumber isobjects: (MaxInt)。Function: x, y NaturalNumber;False, True Boolean, 、 、 、Zero( ) : 0 NaturalNumberIsZ

3、ero(x) : if (x=0) True Boolean else FalseAdd (x, y) : if (x+y=MaxInt) x+y NaturalNumber else MaxIntSubtract (x, y) : if (x y) 0 NaturalNumber else x - yEqual (x, y) : if (x=y) True Boolean else FalseSuccessor (x) : if (x=MaxInt) x NaturalNumber else x+1end NaturalNumber 面向对象面向对象 = 对象类继承通信对象类继承通信clas

4、sinstanceF F F void selectSort ( int a , const int n ) /对对n个整数个整数a0,a1,an-1, 按非递减顺序排序按非递减顺序排序 for ( int i=0; in-1; i+ ) int k = i; /从从ai检查到检查到an-1, 找最小的整数找最小的整数, 在在ak for ( int j=i+1; jn; j+ ) if ( aj ak ) k = j; /k指示当前找到的最小整数指示当前找到的最小整数 int temp = ai; ai = ak; ak = temp; /交换交换ai与与ak (dataList) #ifn

5、def DATALIST_H #define DATALIST_H #include template class dataList private: Type *Element; int ArraySize; void Swap (const int m1, const int m2); int MaxKey (const int low, const int high); public: dataList (int size = 10) : ArraySize (size), Element (new Type Size) dataList ( ) delete Element; void

6、 Sort ( ); friend ostream& operator (ostream& outStream, const datalist& outList); friend istream& operator (istream& inStream, const datalist& inList); ; #endif #ifndef SELECTTM_H #define SELECTTM_H #include “datalist.h” template void dataList : Swap (const int m1, const int m2) /交换由交换由m1, m2为下标的两个

7、数组元素的值为下标的两个数组元素的值 Type temp = Element m1; Element m1 = Element m2; Element m2 = temp; template int dataList: MaxKey (const int low, const int high) /查找数组查找数组ElementlowElementhigh中的中的 /最大值,函数返回其位置最大值,函数返回其位置 int max = low; for (int k = low+1, k = high, k+) if ( Elementmax Elementk ) max = k; return

8、max; template ostream&operator (ostream& OutStream, const dataList OutList) OutStream “Array Contents : n”; for (int i=0; iOutList.ArraySize; i+) OutStream OutList.Elementi ; OutStream endl; OuStream “Array Current Size : ” OutList.ArraySize endl; return OutStream; template istream& operator (istrea

9、m& InStream, dataList InList) /输入对象为输入对象为InList,输入流对象为输入流对象为InStream cout InList.ArraySize; cout “Enter array elements : n”; for (int i=0; iInList.ArraySize; i+) cout “Elememt” i InList.Elementi; return InStream; template void dataList:Sort ( ) /按非递减顺序对按非递减顺序对ArraySize个关键码个关键码 /Element0ElementArrayS

10、ize-1排序。排序。 for ( int i=ArraySize -1; i0; i- ) int j = MaxKey (0, i); if ( j != i ) swap (j, i); #endif #include “selecttm.h” const int SIZE = 10; int main ( ) dataList TestList (SIZE); cin TestList; cout “Testing Selection Sort : n” TestList endl; TestList.Sort ( ); cout “After sorting : n” TestLis

11、t endl; return 0; (Sequenial Search) int seqsearch ( int a , const int n, const int x ) /a0,an-1 1 2 int i = 0; 3 while ( i n & ai != x ) 4 i+; 5 if ( i = n ) return -1; 6 return i; 7 void TimeSearch ( ) /在在1.1000中搜索中搜索0,10,90,100,200,1000 int a1001, n20; for ( int j=1; j=1000; j+ ) aj = j; /a1=1, a

12、2=2, for ( j=0; j10; j+ ) nj = 10*j; /n0=0, n1=10, n2=20 nj+10 = 100*( j+1 ); /n10=100, n11=200, n12=300 . cout n time endl; for ( j=0; j20; j+ ) long start, stop; time (start); int k = seqsearch (a, nj, 0); time (stop); long runTime = stop - start; cout nj runTime endl; cout Times are in hundredths

13、 of a second. endl; n 0 10 20 30 40 50 60 70 80 90 runTime 0 0 0 0 0 0 0 0 0 0 n1002003004005006007008009001000 runTime 0 0 0 0 0 0 0 0 0 0void TimeSearch ( ) int a1001, n20; const long r20 = 300000, 300000, 200000, 200000, 100000, 100000, 100000, 80000, 80000, 50000, 50000, 25000, 15000, 15000, 100

14、00, 7500, 7000, 6000, 5000, 5000 ; for ( int j=1; j=1000; j+ ) aj = j; for ( j=0; j10; j+ ) nj = 10*j; nj+10 = 100*( j+1 ); cout n totalTime runTime endl; for ( j=0; j20; j+ ) long start, stop; time (start); for ( long b=1; b=rj; b+ )int k = seqsearch(a, nj, 0 ); time (stop); long totalTime = stop -

15、 start; float runTime = (float)(totalTime) / (float)(rj); cout nj totalTime runTime endl; n 0102030405060708090总的运行时间241 533 582 736 467 565 659 604 681 472单个运行时间0.00080.00180.00290.00370.00470.00560.00660.00750.00850.0094 n100 200 300 400 500 600 700 800 900 1000总的运行时间527 505 451 593 494 439 484 46

16、7 434 484单个运行时间0.01050.02020.03010.03950.04940.05850.06910.07780.08680.0968 float sum ( float a , const int n ) 1 2 float s = 0.0; 3 for ( int i=0; in; i+ ) 4 s += ai; 5 return s; 6 float sum ( float a , const int n ) float s = 0.0; count+;/count统计执行语句条数统计执行语句条数 for ( int i=0; in; i+ ) count+; /针对针对for语句语句 s += ai; count+; /针对赋值语句 count+;/针对针对for的最后一次的最后一次 count+;/针对针对return语句语句 return s; 执行结束得执行结束得 程序步数程序步数count =2 * n + 3程序的简化形式程序的简化形式 void sum ( float a , const int n ) for ( int i=0; in; i+ )

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > .NET

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!