数据结构与算法概述


layout: post
title: 数据结构与算法概述
copyright: datastruct
category: datastruct
tags: [datastruct]
keywords: 数据结构、算法


什么是数据结构与算法?

简单来说,数据结构就是指一组数据元素的组织形式;算法指的是解决某个问题的操作步骤。
数据结构和算法是不能分开的,单独讲数据结构没有任何意义,同样单独讲算法也没有意义,
因为数据结构是为了存储数据,是静态概念,而算法是为了操作数据是动态概念。

为什么要学习数据结构与算法?

面试
数据结构与算法题一直都是互联网大厂必考题目,其他互联网公司面试时有时也会考察数据结构和算法。所以,只是从找工作的角度来看,掌握数据结构与算法也是必然的。

知其然,知其所以然
我们在日常开发中用到了很多api,框架,这些东西对我们来说已经使用的很熟练了,他们的底层实现都已经封装好了。但是,不需要实现并不代表我们就可以不用了解了。实际上,这些基础的api,或框架的底层实现都糅合了大量的数据结构和算法的设计思想。掌握数据结构和算法,无论是对于阅读框架源码理解其优秀的设计思想都是很有用的。

编写更优雅更高效的代码
掌握了数据结构和算法,我们在编写程序的时候,就会有时间复杂度和空间复杂度的意识的去考虑代码执行效率,资源占用等问题,从而编写出高质量的代码。

提升自己思考能力
数据结构和算法是无数的科学家长期思考加实践总结出的思想精华。掌握了数据结构和算法,我们就相当于站在了巨人的肩膀上,我们看待问题的深度,与解决问题的角度将会完全不同。这种思维的能力会影响我们的任何方面,带来的是永恒的,全面的提升。

怎么学习数据结构与算法?

下图几乎涵盖了数据结构和算法的大部分知识点:
数据结构与算法概述_第1张图片
上图中的知识点,有些在平常的开发中是不会用到的。重点只需要掌握常用的数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树 。常用的算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

学习技巧: 多学多练,leetcode适当刷题,多思考,多挖掘源码实现原理,设立明确的学习目标。

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