和互联网大厂的爱恨情仇

刚开始盲猜一波,我相信肯定有一些人认为,想要找一份java后端工作,要去学习redis,要去学习dubbo,还要去学习springboot,springcloud等等等等一系列的知识。没错,需要学习这些,这时候有人还补充说,还需要项目,对,也没错,这可以丰富你的简历。

但是,如果你的定位是大厂,如果是腾讯,阿里,百度,字节这种大型互联网公司,如果你还是只学习刚才说的那些,我相信你永远都走不到面试那一关。

如果有幸看到这篇文章,而且还是在校生,我建议你着重学习一下基础,比如数据结构与算法,比如jvm,比如gc垃圾回收器,比如计算机网络与算法,比如设计模式等等。再比如更基础的javase。

如果你觉得javase基础学的不错,来,考考你,java8中基本数据类型的范围分别是多少,不要说int的基本数据类型是 -2^31 ~ 2^31-1,我需要的答案是-2147483648 ~~ 2147483647,而且是8种基本数据类型的范围都要说,好了,不要慌张,这确实是一个面试题。大厂校招笔试更多的是算法,是计算机网络,是基础等等等。当然面试的时候远远不止我说的这些,我想表达的是,不是你原本想象的那个样子。

前言结束,言归正传。今天我们的正事是数据结构和算法。
个人觉得,一篇文章写完数据结构,太多了,我相信很难有人看完,也不方便大家翻阅,所以,我分开发表了,下面是所有链接,里面都是用java语言实现的,还比较完整,如果需要,请点链接前往。

队列

  • 环形数组模拟队列( Circle Array Queue)

稀疏数组

  • 稀疏数组(Sparse Array)

链表

  • 单链表(Linked List)
  • 单链表常见面试题(新浪、百度、腾讯)
  • 双向链表(DoubleLinkeList)
  • Josephus(约瑟夫、约瑟夫环) 问题

  • Java数据结构和算法–栈
  • 前缀、中缀、后缀表达式
  • 栈实现综合计算器(中缀表达式)
  • 逆波兰计算器(后缀表达式和中缀转后缀两个版本的代码)
  • 逆波兰计算器完整版

递归

  • Java数据结构和算法–递归
  • Java递归解决迷宫问题
  • 递归-八皇后问题(回溯算法)

排序算法

  • Java排序算法
  • 冒泡排序
  • 选择排序
  • 插入排序
  • 希尔排序
  • 快速排序
  • 归并排序
  • 基数排序
  • 常用排序算法总结和对比

查找算法

  • Java查找算法有哪些?
  • 二分查找算法(递归版本,下面有非递归版本,非递归版本的比较常用)
  • 插值查找算法
  • 斐波那契(黄金分割法)查找算法

哈希表(散列)

  • 哈希表(散列)-Google上机题

二叉树

  • 二叉树、满二叉树和完全二叉树
  • 二叉树的前序、中序和后序的遍历、查找、删除
  • 顺序存储二叉树
  • 实现线索化二叉树和遍历线索化二叉树

树结构的实际应用

堆排序也是一种排序算法,因为堆排序需要用到二叉树,所以和上面的排序算法分开了,学习堆排序之前先学习二叉树相关知识比较好。

  • 堆排序

  • 赫夫曼树的构建和遍历

  • 赫夫曼编码、解码、文件压缩和解压

  • 二叉排序树创建、遍历、增加和删除

  • 创建平衡二叉树(AVL 树)和AVL树的增删改查

多路查找树

  • 二叉树与B树、B+树、B*树和2-3树

  • 构建图和图的深度优先遍历(dfs)和广度优先遍历(bfs)

程序员常用10种算法

  • 二分查找算法(非递归)
  • 分治算法解决汉诺塔问题
  • 动态规划算法解决背包问题
  • KMP算法解决字符串匹配问题
  • 贪心算法解决集合覆盖问题
  • 普里姆算法(prim)解决修路最短路径问题
  • 克鲁斯卡尔算法(kruskal)解决公交站问题
  • 迪杰斯特拉算法(Dijkstra)求最短路径问题
  • 用弗洛伊德(Floyd)算法解最短路径问题
  • Java对马踏棋盘问题(骑士周游问题)的实现

在啰嗦两句数据结构与算法学习起来实属不易,建议结合视频学习,可以去网站找一些视频,不然光靠文字很难理解到位。

你可能感兴趣的:(Java数据结构与算法,java,数据结构,算法)