ImageVerifierCode 换一换
格式:DOCX , 页数:76 ,大小:5.95MB ,
资源ID:14841126      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14841126.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(传智播客C和C++与大数据结构基础讲义Word文档下载推荐.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

传智播客C和C++与大数据结构基础讲义Word文档下载推荐.docx

1、一个数据元素由假如干数据项组成数据对象 性质一样的数据元素的集合 比如:数组,链表 /友情提示,来自结构体课堂代码/声明一个结构体类型struct _MyTeacher /一种数据类型charname32;chartile32;intage;charaddr128;int main21()struct _MyTeacher t1; /数据元素struct _MyTeacher tArray30; /数据对象memset(&t1, 0, sizeof(t1);strcpy(t1.name, name); /数据项strcpy(t1.addr, addrstrcpy(t1.tile, t1.age

2、 = 1;数据元素之间不是独立的,存在特定的关系,这些关系即结构数据结构指数据对象中数据元素之间的关系数组中各个元素之间存在固定的线性关系 编写一个“好的程序之前,必须分析待处理问题中各个对象的特性,以与对象之间的关系。根本概念总结:指数据元素之间的逻辑关系。即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。逻辑结构可细分为4类:1.2、算法算法是特定问题求解步骤的描述在计算机中表现为指令的有限序列 算法是独立存在的一种解决问题的方法和思想。对于算法而言,语言并不重要,重要的是思想。数据结构只是静态的描述了数据元素之间的关系高效的程序需要在数据结构的根底上设计和选择算法=程序=数据

3、结构+算法 总结:算法是为了解决实际问题而设计的数据结构是算法需要处理的问题载体数据结构与算法相辅相成输入算法具有0个或多个输入输出算法至少有1个或多个输出有穷性算法在有限的步骤之后会自动完毕而不会无限循环确定性算法中的每一步都有确定的含义,不会出现二义性可行性算法的每一步都是可行的1、事后统计法比拟不同算法对同一组输入数据的运行处理时间缺陷 为了获得不同算法的运行时间必须编写相应程序运行时间严重依赖硬件以与运行时的环境因素算法的测试数据的选取相当困难事后统计法虽然直观,但是实施困难且缺陷多算法效率的度量事前分析估算依据统计的方法对算法效率进展估算影响算法效率的主要因素算法采用的策略和方法问题

4、的输入规模编译器所产生的代码计算机执行速度/算法最终编译成具体的计算机指令/每一个指令,在具体的计算机上运行速度固定/通过具体的n的步骤,就可以推导出算法的复杂度long sum1(int n) long ret = 0; int* array = (int*)malloc(n * sizeof(int); int i = 0; for(i=0; i 0 ) ret = (1 + n) * n / 2;int main() printf(%dn, sum1(100);, sum2(100);, sum3(100); return 0;int func(int a, int len) int j

5、 = 0; int s = 0;len; i+) n for(j=0; j j+) n s += i*j; /n*n return s;/n*n注意1:判断一个算法的效率时,往往只需要关注操作数量的最高次项,其它次要项和常数项可以忽略。注意2:在没有特殊说明时,我们所分析的算法的时间复杂度都是指最坏时间复杂度。2、大O表示法算法效率严重依赖于操作(Operation)数量在判断时首先关注操作数量的最高次项操作数量的估算可以作为时间复杂度的估算O(5) = O(1)O(2n + 1) = O(2n) = O(n)O(n2+ n + 1) = O(n2)O(3n3+1) = O(3n3) = O(

6、n3)常见时间复杂度关系3、算法的空间复杂度算法的空间复杂度通过计算算法的存储空间实现S(n) = O(f(n)其中,n为问题规模,f(n)为在问题规模为n时所占用存储空间的函数大O表示法同样适用于算法的空间复杂度当算法执行时所需要的空间是常数时,空间复杂度为O(1)空间与时间的策略多数情况下,算法执行时所用的时间更令人关注如果有必要,可以通过增加空间复杂度来降低时间复杂度同理,也可以通过增加时间复杂度来降低空间复杂度练习1:分析sum1 sum2 sum3函数的空间复杂度O(4n+12) O(8)=O(1) O(4)=O(1)实现算法时,需要分析具体问题,对执行时间和空间的要求。练习2:时间

7、换空间 /* 问题: 在一个由自然数1-1000中某些数字所组成的数组中,每个数字可能出现零次或者屡次。 设计一个算法,找出出现次数最多的数字。*/方法1: 排序,然后找出出现次数最多的数字方法2:void search(int a, int len) int sp1000 = 0; int max = 0; int index = ai - 1; spindex+;1000; if( max spi ) max = spi; if( max = spi ), i+1); int array = 1, 1, 3, 4, 5, 6, 6, 6, 2, 3; search(array, sizeo

8、f(array)/sizeof(*array);把每个数字出现的次数的中间结果,缓存下来;在缓存的结果中求最大值。2、线性表线性表(List)是零个或多个数据元素的集合 线性表中的数据元素之间是有顺序的线性表中的数据元素个数是有限的线性表中的数据元素的类型必须一样线性表是具有一样类型的 n 0个数据元素的有限序列a1, a2, , anai是表项,n 是表长度。a0为线性表的第一个元素,只有一个后继 an为线性表的最后一个元素,只有一个前驱除a0和an外的其它元素ai,既有前驱,又有后继线性表能够逐项访问和顺序存取下面的关系中可以用线性表描述的是A.班级中同学的友谊关系 N:NB.公司中的上下

9、级关系 1:C.冬天图书馆排队占座关系 D.花名册上名字之间的关系 1:1创建线性表销毁线性表清空线性表将元素插入线性表将元素从线性表中删除获取线性表中某个位置的元素获取线性表的长度线性表在程序中表现为一种特殊的数据类型线性表的操作在程序中的表现为一组函数C语言描述=线性表的设计与实现ADT抽象层 数据结构(C语言版).严蔚敏_吴伟民.扫描版.pdf p44页 人生财富库积累#ifndef _WBM_LIST_H_#define _WBM_LIST_H_typedef void List;typedef void ListNode;/创建并且返回一个空的线性表List* List_Create

10、();/销毁一个线性表listvoid List_Destroy(List* list);/将一个线性表list中的所有元素清空, 线性表回到创建时的初始状态void List_Clear(List* list);/返回一个线性表list中的所有元素个数int List_Length(List* list);/向一个线性表list的pos位置处插入新元素nodeint List_Insert(List* list, ListNode* node, int pos);/获取一个线性表list的pos位置处的元素ListNode* List_Get(List* list, int pos);/删除

11、一个线性表list的pos位置处的元素 返回值为被删除的元素,NULL表示删除失败ListNode* List_Delete(List* list, int pos);#endif注意: (重点:别离思想) 插入元素算法判断线性表是否合法判断插入位置是否合法把最后一个元素到插入位置的元素后移一个位置将新元素插入线性表长度加1获取元素操作判断位置是否合法直接通过数组下标的方式获取元素删除元素算法判断删除位置是否合法将元素取出将删除位置后的元素分别向前移动一个位置线性表长度减1链表顺序存储插入算法和删除算法优点:无需为线性表中的逻辑关系增加额外的空间可以快速的获取表中合法位置的元素缺点:插入和删除

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1