欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > 数据结构算法心得体会

数据结构算法心得体会

时间:2016-03-01 15:55

学习数据结构的心得体会

数据结构学习体会及教学建议时间过的很快,一转眼一学期的数据结构课程就已经快要告一段落了,在接触这么课以前,我觉得编程无非就是会写代码就好了。

然而事实上数据结构对于程序来说,有着非常重要的地位。

随着计算机应用领域的不断扩大,非数值计算的问题占据了当今计算机应用的绝大部分,简单的数据类型已经远远不能满足需要,个数据元素之间的复杂关系已经不是普通数学方程式能够表达的了,所以数据结构就扮演了十分重要的角色。

在学期初,我觉得数据结构还是比较简单的,但可能由于之前c语言学习对指针掌握的不够熟练,导致在数据结构中接触到与指针有关的问题,例如线性表,堆栈,队列,二叉树等问题的时候,都会显得有些吃力。

但是在不断学习数据结构的过程中我也不断加强了对指针的学习,现在我已经能够基本掌握指针的相关知识并且能够熟练运用了。

这一学期的学习下来我发现想要学好数据结构有以下几点经验{虽然可能我的数据结构学的并不是很好}1.初步了解算法思想、原理想要弄清楚一个算法的实现,首先要知道这个算法的大致原理,这是最简单的一步,也是最基础的一步,只有明白算法想要干什么,才能弄清楚相应的代码段是为什么2.钻研课本代码段对于书上的算法代码,我们一定要仔细钻研每一步的具体含义和目的,在此基础上深入的了解算法的实现过程,而不是一味的四级硬背,不仅无聊,而且效率低下。

3.查找各种算法资料例如排序算法,其实历史上有很多不同的排序算法,书上

请问一下:有谁能总结数据结构中排序章内介绍各种算法的时间复杂度呀,很急。

按照分析惯例,假设所有单一运算的时间复杂度均为1x=n; ......1while(x>=(y+1)*(y+1)) ......4(两次加法、1次乘法、1次比较) y=y+1 ......1时间复杂度 = 1 + (4 + 1) x 循环次数循环次数是由n和y的初始值决定的,假设循环次数为N,y的初始值为y0,y的结束状态为yn,有 x < (yn + 1)*(yn + 1) ......假设y的初始值为整数,则yn为满足该式的最小整数 N = (yn - y0) \\\/ 1 ......因为每次循环y的递增量为11式简化为 x = (yn + 1)*(yn + 1),可得:yn = n^(1\\\/2) - 1所以N = n^(1\\\/2) - 1 - y0采用大O表示法,仅考虑最高次项,则求N的复杂度为O(n^(1\\\/2))进而求得你这3行代码的总体复杂度 = 1 + (4 + 1) x O(n^(1\\\/2))由于已知的常数项及非最高次项通常会被忽略(大O精神),所以总时间复杂度为O(n^(1\\\/2))

怎么学好数据结构与算法,好难啊

先学好语言,这是学习的基础。

有些算法书上在学习语言部分会有一点算法包含在内,比如递归。

要学算法,先练好递归,这会对你深入学习其他算法有很大的帮助。

树形结构是数据结构中较难的部分,也是数据结构的基础,主要靠练。

还有就是,不要总是学习理论,合上书本认真地把算法用代码和实现是最重要的。

不要背代码,没用的,注重理解。

刚开始会有些不习惯,学得多了就好了。

-------------------------------------------------------------------------------------------内容出自希望对你有帮助1. 程序 = 数据结构 + 算法 2. 学习:刚开始看时肯定会有些不清楚,因为你是刚学完 语言,对语言还不太熟练。

你学习数据结构时找一本经典的数据结构书,看完一个数据结构后用语言将其实现。

开始时的实现肯定会有困难,那么请百度下会有很多优秀的数据结构源码的。

你可以模仿这些优秀的源码写。

请记住一定要开始时自己实现,当被卡住了就看一下源码,看看自己被卡在了什么地方,引起注意以便下次自己会写。

当你把书上的数据结构源码写了一遍之后,你已经超过了你绝大部分的同学。

3. 运用: 这时你就需要对这些数据结构加以运用,你可以在百度上搜索“某个数据结构 + ACM”,你就会看到一些题目,这些题目都是数据结构的运用,甚至有这些数据结构的变形。

每种数据结构做5题左右。

期间你还会遇到程序另一重要的方面算法,有不会的就 百度。

期间可以学到的数据结构和算法做小软件玩儿,例如压缩软件,五子棋之类的。

4. 深入: 当你完成了第三步你已经是你们学校的小高手了。

这时看你的方向如果这时发现自己喜欢 ACM 的话就去搞 ACM,如果不感兴趣,就找自己感兴趣的技术学习一下,做几个完整的项目,例如写个编译器,或者实现一个简单的编程语言。

总结:无论选择哪条道路只要按照这些做了,你毕业后肯定会成为抢手货。

-------------------------------------------------------------------------------------------也就这样了:时间并不会因为你的迷茫和迟疑而停留,就在你看这篇文章的同时,不知道有多少人在冥思苦想,在为算法废寝忘食,不知道有多少人在狂热地拍着代码,不知道又有多少提交一遍又一遍地刷新着OJ的status页面…… 没有谁生来就是神牛,而千里之行,始于足下

我期盼NOIP一等榜上有你(虽然我不知道你叫什么)。

如何将数据结构运用到实际的编程中去,那位高人有心得体会,不妨分享一下~~~

首先你要认识到数据结构是个什么东西,然后就自然就会用了哦

数据结构与算法,这道难题怎么做啊,求指教

首先,要能够读懂代码,总结算法的思想,搞清楚该题算法是完成什么功能,然后是填空也好,写算法结果也好,就不成问题了。

要想提高的快,就得多练啊。

同时教材中的相关算法也要熟,好多是书中的原算法1. 在计算机中,算法是指什么

答案:解题方案的准确而完整的描述。

2. 在下列选项中,哪个不是一个算法一般应该具有的基本特征

说明:算法的四个基本特征是:可行性、确定性、有穷性和拥有足够的情报。

答案:无穷性。

3. 算法一般都可以用哪几种控制结构组合而成

答案:顺序、选择、循环。

4. 算法的时间复杂度是指

答案:算法执行过程中所需要的基本运算次数。

5. 算法的空间复杂度是指

答案:执行过程中所需要的存储空间。

6. 算法分析的目的是

答案:分析算法的效率以求改进。

7. 下列叙述正确的是(C) A.算法的执行效率与数据的存储结构无关 B.算法的空间复杂度是指算法程序中指令(或语句)的条数 C.算法的有穷性是指算法必须能在执行有限个步骤之后终止 D.算法的时间复杂度是指执行算法程序所需要的时间 8. 数据结构作为计算机的一门学科,主要研究什么

答案:主要研究数据的逻辑结构、对各种数据结构进行的运算,以及数据的存储结构。

9. 数据结构中与所使用的计算机无关的是数据的(C) A.存储结构 B.物理结构 C.逻辑结构 D.物理和存储结构 10. 下列叙述中,错误的是(B) A.数据的存储结构与数据处理的效率密切相关 B.数据的存储结构与数据处理的效率无关 C.数据的存储结构在计算机中所占的空间不一定是连续的 D.一种数据的逻辑结构可以有多种存储结构 11. 数据的存储结构是指什么

答案:数据的逻辑结构在计算机中的表示。

12. 数据的逻辑结构是指

答案:反映数据元素之间逻辑关系的数据结构。

13. 根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为

答案:线性结构和非线性结构。

14. 下列数据结构具有记忆功能的是(C) A.队列 B.循环队列 C.栈 D.顺序表 15. 下列数据结构中,按先进后出原则组织数据的是(B) A.线性链表 B.栈 C.循环链表 D.顺序表

算法和数据结构的关系

记得网上曾经有一个帖子,大概的列出了学习ACM来说需要的知识背景。

如果不是牛人,或者天生受虐倾向,普通人看到了都会晕倒,多达100多个科目(全部需要数学背景)。

楼主觉得你能学的过来吗

但是,所有的算法,乃至数学在实际运用中都是要根据不同的数据来选择不同的方法,所以一般学习过算法和数据结构的人都会越发的认识到,数据才是程序的中心,只有找到了一个组织数据的最佳方式,算法的运用才会事半功倍。

比如我印象最深刻的是在大二时做的一道题目:判断一个输入的数是否符合科学计算法。

如e*103,-30.90*103就不是。

这样一道题,如果用普通的数组线性存储,然后逐一判断,效率的算法的复杂度都是不合格的。

有限状态机则清晰明了的解决了这个问题。

即把所有可能的状态和状态的转换画成一个矩阵,然后每读取一个输入的字符就在这些状态中跳转,直到最后一个字符为止,判断最终状态是有效还是无效状态。

总而言之:数据结构是问题的核心,是算法的基础。

建议楼主先磨好数据结构这把剑,对算法也不用着急,毕竟很多的数据结构的书中都有一些基础算法的介绍的。

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片