关于数据结构和算法是用C语言还是Java?

其实不管是什么版本,数据结构和算法的基本概念和思想都是相同的。重要的是理解数据结构的原理和算法的设计思路,而具体的语言实现只是工具而已。你可以根据兴趣和职业规划选择合适自己的版本。

  • 学C语言版:C语言是一种通用的变成语言,广泛应用到系统编程、嵌入式开发和算法实现等领域。学习C语言版的数据结构与算法可以让我们更深入的理解底层的数据结构和算法,有助于帮助我们提高编程能力和算法思维。此外,许多面试和编程挑战题都是以C语言为基础的。
  • 学Java版:如果你对计算机科学专业主要使用Java,并且未来职业发展也与Java相关,那直接学Java版本的数据结构与算法有一定优势。Java版的数据结构和算法可以让我们直接应用于实际项目中,从而更好的理解Java相关的数据结构和算法库。

但是,如果你将来打算考研的话,建议你查看目标院校考研要求和参考书籍推荐,有的学校倾向于C/C++,也有的学校更倾向于Java。

学习数据结构与算法的五个步骤:基础语法学习—>语法配套练习—>数据结构—>算法入门—>算法进阶

一、数据结构

官方解释:数据结构是一门研究非数值计算的程序设计问题中的额操作对象,以及他们之间的关系和操作等相关问题的学科。

大白话数据结构就是把数据元素按照一定的关系组织起来的集合,用来组织和存储数据

数据结构的分类

传统上,我们可以把数据结构分成逻辑结构和物理结构两大类。

逻辑结构分类:

逻辑结构市场ongoing具体问题中抽象出来的模型,是抽象意义上的结构,按照对象中数据元素之间的相互关系分类。这是学习需要重点关注的部分

其中的知识点:

一维:

  • 基础: 数组 array (string),链表 linked list
  • 高级:栈 stack,队列 queue, 双端队列 duque,集合 set,映射 map (hash or map),等等

二维:

特殊:

二、算法

官方解释:算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。

大白话:根据一定的条件,对一些数据进行计算,得到需要的结果

任何的高级算法与数据结构都会转换成if else,for循环,这些的根本还是计算机基础。高级算法重点是找到重复单元。

三、学习方法

千万不要盲目学习,有的时候觉得自己听一遍课就会了,这种简直是自欺式学习。

  1. 通过听课或者看书吸收知识点
  2. 能够写出执行代码
  3. 能写出一个项目
  4. 能实现功能

这个是【强制输出】带动【吸收内化】的学习过程。数据结构和算法呢,就是要刷题!

  • 理解题目:审题可以多审几遍,避免自己理解错误
  • 多种解决方案:对比时间和空间复杂度,反复最求最优解
  • 多写代码:每一种写法尽量都掌握,尽量多写几遍
  • 测试案例:在LeetCode上可以改变测试案例,多测试几种案例;

刷题刷它个四五遍!

第一遍:

阅读审题之后,思考解法。如果你没有思路就别浪费时间了,直接看解法。记录多个解题方法,比较解题方法的优劣。这一遍看过答案之后记得默写!

第二遍:

自己编写,这时候就不要看答案了。自己写完提交代码,有没有bug都没事,自己要学会debug!知道调试完了位置。编写出多种解题方案。持续优化,重点可以放在执行时间。可以看看LeetCode上面打败了多少人。

第三遍:

重复之间刷过的题,专项练习

第四遍:

建议每隔一段时间,就重复练习自己刷过的题。

找对课程找对老师非常重要,另外高效学习需要自己总结出一套适合自己的系统化的学习方法。自己可以利用各种方式将零碎的知识点相互联络起来。希望大家都能找到适合自己的学习方法~

课程分享

2023新版数据结构与算法Java视频教程(上篇),java高级程序员必学的数据结构与算法icon-default.png?t=N6B9https://link.zhihu.com/?target=https%3A//www.bilibili.com/video/BV1Lv4y1e7HL/%3Fspm_id_from%3D333.999.0.0%26vd_source%3Dc5b829c113088a67f153859f36a1d214

2023新版数据结构与算法Java视频教程(下篇),java高级程序员必学的数据结构icon-default.png?t=N6B9https://link.zhihu.com/?target=https%3A//www.bilibili.com/video/BV1rv4y1H7o6/%3Fspm_id_from%3D333.999.0.0

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值