博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
-------第一讲----第一节-------------- 1 基本概念-----------------什么是数据结构--------------...
阅读量:6163 次
发布时间:2019-06-21

本文共 3406 字,大约阅读时间需要 11 分钟。

数据结构(date structure)是计算机中储存,组织数据的方式.通常情况下,精心选择的数据结构可以带来最优效率(短小精悍)的算法.---------------------数据结构和算法是紧密相关的.

例一:  怎样在书架上放置一些书籍(给了你一些数据和一些储存空间你应该怎样将这些数据储存起来)?

思考时间:----------------------------------------------------------;

放置图书需要注意的问题:

操作1:新书怎么插入?

操作2:怎么找到一本特定的书?

--------------------------------------下面是我的想法------------------------------------

1:按照数据从小到大的顺序以数组的方式(在物理地址上连续的储存).(物理结构)

2:按照数据从小到大的顺序以链表的方式储存.

-----------讲解----------------------放置图书----------------------------------------------------

1:随便放.

操作1:那里有空放哪里.....

操作2:  累成哮天犬........

2按照书名拼音顺序摆放...

操作1:缺点:适用于不经常变动的有序表...插入和删除比较困难.

操作2:二分查找   优点:速度快.比较的次数少. 0

3:将书架划分成几块区域,每块区域指定摆放某一类图书.(对第二种方法的优化)

问题:

    1:空间怎么分 ?     每一类多大的区域 ?  防止浪费...防止不断加书柜.

    2:类别分多细 ?    太细的话...太粗略的话.....

----------------------------参考咱们学校的方法--------------------------------

可以先进行大类的分类,然后按字母顺序排列,最后将索书号一一编辑放入一个软件中,将其信息填入软件(哪个馆区、哪一排、那一层…

=========================我是大分割线=====================================

写程序实现一个函数print,使得传入一个正整数为N的参数后,能顺序打印从1到N的全部正整数.

//循环实现#include
int main(){ int n,i; scanf("%d",&n); for(i=1;i<=n;i++) { printf("%d\n",i); } return 0;}
//我输入100000的时候程序崩了.#include
int print(int n);int main(){ int n,i; scanf("%d",&n); print(n); return 0;}int print(int n){ if(n) { print((n-1)); printf("%d\n",n); }}

作为人类你喜欢写递归程序,但是计算机特别不想跑递归.(递归占用空间吓死人.)

-----------------------------------------上面的递归为什么崩了?---------------------------------------

上面的递归占用空间太多,以至于在空间吃完之后还想吃空间导致自己爆了.

---------------------------------------------------------------------------------------------------------

==========================我是大分隔符==================================

写程序 计算给定多项式在定点X处的值.

F(x)=a0+a1*x+a2*x+~~~~~~~~+a n-1 *x ^n-1  +a n x^n;

//很人性化,简单易懂.....但是蠢的要死.//其思想是   一个一个相加得出最后的结果#include
#include
int main(){ int a[11111],x,n,j,b,c,p,i; while(scanf("%d",&n)!=EOF) { for(i=0;i<=n;i++) { scanf("%d",&a[i]); } scanf("%d",&x); for(p=a[0],i=1;i<=n;i++) { p=p+a[i]*pow(x,i); } printf("%d\n",p); } return 0;}

--------------------------------------几千年前 秦九韶  就想出来了一个更好的算法下面附上代码---------------------

#include
#include
int main(){ int a[11111],x,n,j,b,c,p,i; while(scanf("%d",&n)!=EOF) { for(i=0;i<=n;i++) { scanf("%d",&a[i]); } scanf("%d",&x); for(p=a[n],i=n;i>0;i--) { p=a[i-1]+x*p; } printf("%d\n",p); } return 0;}

利用了结合律........

-------为什么说第二个函数实现的比较好,第一个函数就应该受到鄙视呢?-----下面给出原因-----------

在程序的运行过程中发现当给的数值比较大的时候    第二个的时间复杂度远远低于第一个函数.

 

#include
#include
clock_t start ,stop;//clock_t是clock()函数返回的变量类型.double duration;//记录被测函数运行时间,以秒为单位int main(){ start=clock();//开始计时. myfunction(); stop=clock();//结束计时 duration=((double)(stop-start)/CLK_TCK); //其余的不再计时范围内...... return 0;}

 

具体代码自己下去实现...........(如果处理的东西比较少的话系统是捕捉不到时间的   那时候时间就是0.所以你要输入足够多的数字....)

最后结果显示他们错了一个数量级.第二个程序大概比第一个快10倍.由此可以看出  解决问题的效率和算法的巧妙度有关

 

-------------------------------------------------------------------------------------------------------

所以说了半天 到底啥是数据结构..呵呵 ..自己体会吧....

 

 

 

 

 

 

 

 

汗.还是回来补充一下吧.......

数据结构

1:数据结构是数据对象在计算机中的组织方式(类似于上述所讲的  书在图书馆中的存放方式.)

2:数据对象必定与一系列夹在其上的操作相关联.

   /完成这些操作所用的方法就叫做算法.

转载于:https://www.cnblogs.com/A-FM/p/5079966.html

你可能感兴趣的文章
系统ghost后变成一个盘了别的分区的文件怎么找回
查看>>
Win7+Ubuntu11
查看>>
请问华为三层交换机里面的那个从IP是个什么意思? -
查看>>
kFeedback开源啦
查看>>
大数据传输,文件传输的专业解决方案!
查看>>
阿里云专家穆轩的《杭州九年程序员之“修炼”手册》
查看>>
JQuery:deferred对象的方法
查看>>
eyoucms问答 百度权重是什么
查看>>
win10中遇到qq视频时摄像头打不开没反应的解决方法
查看>>
介绍自己的一个Android插桩热修复框架项目QuickPatch
查看>>
关于textarea的ie9的maxlength不起作用的问题,请参考如下URL解决。
查看>>
Solr Facet 查询
查看>>
C++类的继承一
查看>>
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案...
查看>>
巧用VMware Workstation的clone来制作虚拟机模板
查看>>
Spring-Mybatis MapperScannerConfigurer 取不到PropertyPlaceholderConfigurer里的值
查看>>
HP DL380G4服务器前面板指示灯的含义
查看>>
数据结构_树结构
查看>>
常用URL地址
查看>>
每天一个linux命令(19):find 命令概览
查看>>