什么是数据结构?什么是算法?

广义:数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。

例子:图书馆存储图书,为了方便查找,图书管理员一般会将书籍分门别类进行存储。按照一定规律编号,就是书籍这种“数据”的存储结构。

我想找一本书?可以有很多种方法,我可以一本一本的找,也可以根据书籍类别编号,是军事,还是政治、人文,来定位书架,然后再依次查找,这些查找的方法都是算法。

 

狭义:指某些著名的数据结构和算法,比如堆、栈、队列、二分查找、动态规划等,经过很多求证和校验,可以提高我们的开发效率,都是前人的结晶

 

数据结构和算法有什么关系呢?

数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。

比如,因为数组具有随机访问的特点,常用的二分查找算法需要用数组来存储数据。但如果我们选择链表,二分查找就无法工作了,因为链表并不支持随机访问。

数据结构是静态的,他只是组织数据的一种方式。如果不在他的基础上操作、构建算法、孤立存在的数据结构就是没用的。

复杂度分析对于数据结构与算法来说是最重要的概念

因为数据结构与算法解决的是如何更省、更快的存储和处理数据的问题,因此我们就需要一个考量效率和资源消耗的方法。

最常用的20个数据结构与算法

10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树;

10个算法:递归、排序、二分查找、搜素、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

 

 

 

为什么学习数据结构和算法?
1.直接好处是能够有写出性能更优的代码。
2.算法,是一种解决问题的思路和方法,有机会应用到生活和事业的其他方面。
3.长期来看,大脑思考能力是个人最重要的核心竞争力,而算法是为数不多的能够有效训练大脑思考能力的途径之一。