数据结构和算法对于java来说的重要性:1、算法是程序的灵魂,优异的程序可以在海量数据计算时,依然保持高速计算;2、一般来讲程序会使用了内存计算框架(比如Spark)和缓存技术(比如Redis等)来优化程序。
一、数据结构和算法的重要性
1、算法是程序的灵魂,优异的程序可以在海量数据计算时,依然保持高速计算
2、一般来讲程序会使用了内存计算框架(比如Spark)和缓存技术(比如Redis等)来优化程序,再深入的思考一下,这些计算框架和缓存技术,它的核心功能是哪个部分呢?(底层也是算法)
3、拿实际工作经历来说,在Unix下开发服务器程序,功能是要支持上千万人同时在线,在上线前,做内测,一切OK,可上线后,服务器就支撑不住了,公司的CTO对代码进行优化,再次上线,坚如磐石。你就能感受到程序是有灵魂的,就是算法。
4、目前程序员面试的门槛越来越高,很多一线IT公司,都会有数据结构和算法面试题(负责的告诉你,肯定有的)
5、如果你不想永远都是代码工人,那就花时间来研究下数据结构和算法
来源:本文为CSDN博主「居之无倦,行之以忠」的原创文章
原文链接:https://blog.csdn.net/qq_43800467/article/details/122414802
延伸阅读
Java中常见的数据结构
1、数组
数组(Array) 是一种很常见的数据结构。它由相同类型的元素(element)组成,并且是使用一块连续的内存来存储。
我们直接可以利用元素的索引(index)可以计算出该元素对应的存储地址。
特点:长度固定,不支持动态扩容。可以随机访问元素。
2、链表
虽然是一种线性表,但是并不会按线性的顺序存储数据,使用的不是连续的内存空间来存储数据。
链表的插入和删除操作的复杂度为 O(1) ,只需要知道目标位置元素的上一个元素即可。但是,在查找一个节点或者访问特定位置的节点的时间复杂度为 O(n) 。
特点:长度不固定,插入和删除比较简单,只需要知道目标位置的上一个原色即可。查找复杂。使用链表结构可以克服数组需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但链表不会节省空间,相比于数组会占用更多的空间,因为链表中每个节点存放的还有指向其他节点的指针。除此之外,链表不具有数组随机读取的优点。
3、数组和链表比较
数组长度固定且支持随机访问元素,链表长度不固定不支持随机访问。
如果需要的元素数量固定,且不需要经常的插入和删除,数组适合。
如果需要的元素数量不固定,且需要经常插入和删除链表更合适。
数组开辟连续的空间,链表不是开辟的连续空间。
4、栈
栈 (stack)只允许在有序的线性数据集合的一端(称为栈顶 较好)进行加入数据(push)和移除数据(pop)。因而按照 后进先出(LIFO, Last In First Out) 的原理运作。在栈中,push 和 pop 的操作都发生在栈顶。
栈常用一维数组或链表来实现,用数组实现的栈叫作 顺序栈 ,用链表实现的栈叫作 链式栈 。
5、队列
队列 是 先进先出( FIFO,First In, First Out) 的线性表。在具体应用中通常用链表或者数组来实现,用数组实现的队列叫作 顺序队列 ,用链表实现的队列叫作 链式队列 。队列只允许在后端(rear)进行插入操作也就是 入队 enqueue,在前端(front)进行删除操作也就是出队 dequeue
队列的操作方式和堆栈类似,少数的区别在于队列只允许新数据在后端进行添加。
文章标题:数据结构和算法对于java来说是什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37478