前几天去面一个大厂,面试官特别好,面试官说到,我们的学习不能本末倒置,数据结构和算法是程序的基础,如果数据结构你没有学好,你真正意义上不算会写代码。你的代码是各处粘贴,杂乱无章的。

由于现在大多用JAVA所以这里根据韩老师的JAVA数据结构和算法进行学习。有什么不对的地方,欢迎指正。

数据结构和算法的重要性

  1. 算法是程序的灵魂,优秀的程序可以在海量数据计算时,依然保持高速计算
  2. 一般来讲 程序会使用了内存计算框架(比如Spark)和缓存技术(比如Redis等)来优化程序,再深入的思考一下,这些计算框架和缓存技术, 它的核心功能是哪个部分呢?
  3. 拿实际工作经历来说, 在Unix下开发服务器程序,功能是要支持上千万人同时在线, 在上线前,做内测,一切OK,可上线后,服务器就支撑不住了, 公司的CTO对代码进行优化,再次上线,坚如磐石。你就能感受到程序是有灵魂的,就是算法。
  4. 目前程序员面试的门槛越来越高,很多一线IT公司(大厂),都会有数据结构和算法面试题(负责的告诉你,肯定有的)
  5. 如果你不想永远都是代码工人,那就花时间来研究下数据结构和算法

数据结构和算法的关系

  1. 数据data结构(structure)是一门研究组织数据方式的学科,有了编程语言也就有了数据结构.学好数据结构可以编写出更加漂亮,更加有效率的代码。
  2. 要学习好数据结构就要多多考虑如何将生活中遇到的问题,用程序去实现解决.
  3. 程序 = 数据结构 + 算法
  4. 数据结构是算法的基础, 换言之,想要学好算法,需要把数据结构学到位。

数据结构包括:线性结构和非线性结构。

线性结构

  1. 线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系
  2. 线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的
  3. 链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息
  4. 线性结构常见的有:数组、队列、链表和栈,后面我们会详细讲解.

非线性结构

  1. 非线性结构包括:二维数组,多维数组,广义表,树结构,图结构

常见的实际编程中遇到的问题:

后续一一进行详解。

路还很长,不问东西!加油!

JAVA数据结构与算法【简单介绍】相关推荐

  1. Java数据结构和算法(六)——前缀、中缀、后缀表达式

    前面我们介绍了三种数据结构,第一种数组主要用作数据存储,但是后面的两种栈和队列我们说主要作为程序功能实现的辅助工具,其中在介绍栈时我们知道栈可以用来做单词逆序,匹配关键字符等等,那它还有别的什么功能吗 ...

  2. Java数据结构和算法(一)——简介

    本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子. 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱.一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数 ...

  3. Java数据结构与算法(二)

    Java数据结构与算法(二) 第六章 递归 1 递归应用场景 2 递归的概念 3 递归调用机制 4 递归能解决什么样的问题 5 递归需要遵守的重要规则 6 递归-迷宫问题 6.1 迷宫问题 6.2 代 ...

  4. java数据结构与算法之双链表设计与实现

    转载请注明出处(万分感谢!): http://blog.csdn.net/javazejian/article/details/53047590 出自[zejian的博客] 关联文章: java数据结 ...

  5. Java数据结构和算法 - 递归

    三角数字 Q: 什么是三角数字? A: 据说一群在毕达哥拉斯领导下工作的古希腊的数学家,发现了在数学序列1,3,6,10,15,21,--中有一种奇特的联系.这个数列中的第N项是由第N-1项加N得到的 ...

  6. 一.Java数据结构与算法:如何开始

    数据结构和算法是计算机科学的核心概念之一,它们在软件开发中起着至关重要的作用.学习Java数据结构和算法不仅有助于提高编程能力,还能让你在面试和职业发展中脱颖而出.本文将为你介绍数据结构和算法的重要性 ...

  7. 【Java数据结构及算法实战】系列002:算法的四种描述方式

    本节是<Java数据结构及算法实战>系列的第2节,主要介绍描述算法的常用的4种方式. 要定义一个算法,我们可以用自然语言.流程图.伪代码的方式描述解决某个问题的过程或是编写一段程序来实现这 ...

  8. Java数据结构与算法学习 目前30170字

    文章借鉴于[尚硅谷]数据结构与算法(Java数据结构与算法),在内容方面会做更改,但是核心依然是他们的学习视频.在这里声明. 1. 线性结构和非线性结构 1.1 线性结构 数据结构包括两大部分,一个叫 ...

  9. Java 数据结构与算法系列之冒泡排序

    一.前言 相信大部分同学都已经学过数据结构与算法这门课了,并且我们可能都会发现一个现象就是我们所学过的数据结构与算法类的书籍基本都是使用 C 语言来写的,好像没见过使用 Java 写的数据结构与算法. ...

最新文章

  1. 只要你敢进来,没有学不会xml滴
  2. CSS之布局(盒子的垂直布局)
  3. ACM小白入门之必须要了解的东西
  4. 创建maven项目但是总是报错
  5. hdu5491 The Next 模拟
  6. 电商企业纷纷结缘信息化 管理系统如何给力?
  7. PEP 0498 -- Literal String Interpolation 翻译(未完待续)
  8. 成功解决AttributeError: 'DataFrame' object has no attribute 'reshape'
  9. GDCM:gdcm::Series的测试程序
  10. 客官,.NETCore无代码侵入的模型验证了解下
  11. PHP实现多文件上传
  12. Python——正则表达式特殊符号及用法
  13. Java 小白:没有项目经验,企业会要我么
  14. css Flex布局(一)
  15. 中国 AI 的“黄埔军校”?MSRA 被曝停招“国防七子”及北邮学生
  16. Go Elasticsearch 快速入门
  17. AMD授权GPU给Intel?苏姿丰:没有的事
  18. nginx 代理部署前端项目
  19. arduino雨滴传感器和舵机控制
  20. ps学习——基本工具

热门文章

  1. CodeForces - 1484F Useful Edges(最短路)
  2. CodeForces - 1343E Weights Distributing(最短路)
  3. clob类型用java怎么存,Java 储存和读取 oracle CLOB 类型字段的实用方法
  4. Fibonacci数列的幂和
  5. 线段树求逆序数(单点更新)
  6. 漫游Kafka实战篇之客户端编程实例
  7. 线程池原理及创建(C++实现)
  8. PHP、Node、Ruby和Python应用,漏洞修复
  9. MySQL 中存储时间的最佳实践
  10. 一文搞懂JAVA与GO垃圾回收