❶ 学数据结构和算法之前要先学什么
学习算法和数据结构就是把你的程序运行速度变得更快,内存需求变得更小,代码长度变得更短。正式进入数据结构和算法前需要了解下C++内存的那些事。
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
栈,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限;
堆,就是那些由new分配的内存块,它们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收;
自由存储区,就是那些由malloc等分配的内存块,它和堆是十分相似的,不过它是用free来结束自己的生命的;
全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区;
常量存储区,这是一块比较特殊的存储区,它们里面存放的是常量,不允许修改。
以上内容摘自《C++内存管理技术内幕》,学习数据结构和算法前可以多多看一下。
❷ 算法导论 编译原理 离散数学 数据结构与算法分析(这是一本) 阅读顺序
离散数学
数据结构与算法分析
形式语言
编译原理
算法导论
说明:形式语言是编译原理的基础
❸ 学习java的顺序是什么比如说是先学编程语言还是算法还是数据结构什么的
先学基本的编程语言,至于算法跟数据结构,跟特定的语言并没有特别大的关系,也就是学什么语言都可以学,属于进阶
❹ C语言,数据结构与算法,JAVA,它们之间的学习顺序以及相互关系求教...
谁又在误人子弟了?
先数据结构?
搞笑?
先c语言,c语言是基础
什么叫javac学一个就够
还建议学c++,哎
c是基础,在c的基础上在去学java或者c++或者c#
学好c学java,c++都会容易多的
你如果直接java,告诉你没前途的
c是比较基本的编程语言,基础是c
学c后可以学学数据结构和算法
然后如果有兴趣建议学c++,毕竟会c++的人上手java很快,java的来搞c++那就是难于上青天
❺ 关于算法的学习过程
你说的应该是计算机算法吧,如果真要在这上面深究的话,建议还是提高数学基础,最基础的两门课是离散数学与数据结构,当然一般高校的教材都还是比较不错的,数据结构这个东西一开始比较抽象,等你学过后悟一悟就会发现很有意思,把它学好,争取能自己理解并实际编程实现常用的所有数据结构及其相关算法,然后就看“计算机算法基础”这本书吧,从分治法到回溯法等等等等,把常用的算法(典型问题)学会并用程序实现它们,这样的话就差不多了。推荐几本书:《数据结构》、《计算机算法基础》、《算法:C语言实现》(两本,普林斯顿大学的Robert着)。另外,当你基础够好的时候,就看看算法界的宗师Donald E. Knuth(高德纳)的经典算法巨作<The Art Of Computer Programming>(简称TAOCP,共3卷)及其有关数学基础的书<具体数学>.
当你把这一切都学完(学会)之后,相信你的算法水平已经到了个相当的高度。比尔·盖茨曾说过,如果学完了3卷TAOCP,就把简历寄给他。努力吧!算法很有趣,一步步来,相信你会成功的。
❻ 应该先学算法还是数据结构
个人愚见,数据结构是算法的凝结品,因为各种数据常用或通用的数据结构能够解决在实际应用中的一些问题,然而算法就是解决问题的一套思路,当这套解决问题的思路固定之后,就会有相应成熟的数据结构产生,也就是鸡和鸡蛋那个先存在的问题,如果按照正常的思路,先学数据结构,然后再学算法,不过一般在学数据结构的时候,肯定会有一些知名 的算法会顺带地学到