前言
在数据结构(基础)这一小节博客中,我会学习到数据结构中的基础内容,主要包含有:时间复杂度_空间复杂度、顺序表_链表、栈_队列、二叉树、排序。而剩下的一些复杂的数据结构,我会放到学习C++的过程中穿插学习。
简单说明
什么是数据结构
数据结构(Data Structure):就是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。
什么是算法
算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。
(下面内容为摘抄后稍加改编,来自:https://blog.csdn.net/bingguang1993/article/details/81048022,CSDN,bingguang1993)
数据结构和算法的重要性
①数据结构与算法是程序的灵魂,是朴素的基础,学好它有助于理解各种上层抽象。在没有充分学习和理解数据结构与算法的基础上去学习面向对象、设计模式,是无法真正体会这些上层抽象的真正意义的,最终可能会导致学之泛泛,用之泛泛;
② 在工作实践中,数据结构和算法随处可见,影响重大。 而且你工作的前提是要找到工作,在笔试、面试过程中,这些东西都是必考的,如果你对这些不理解,不掌握,那么你可能连一个靠谱的工作都找不到;
③现在的软件工程充斥着大量的过度设计、资源浪费,实际上已经到了硬件承受不了的地步了。学好数据结构和算法,能够从根本上去避免这些问题;
④当今流行的WEB新时代,各种云概念,海量数据,百万用户并发(从以前著名的C10K问题,到现在的C1000K甚至更高问题),最终都是数据结构与算法的比拼。这一切,较量才刚刚开始。
如何学好数据结构与算法
①常备参考书。即使不能通读,也要时时备查;
②已有的数据结构与算法,怎么实现是末节,能理解原理、明白适用场合才是重点;
③不必过度追求怪异算法,适用的就是最好的,简单的才是最佳的。;
④多读开源作品,看看他们是怎么熟练应用那些基本的数据结构与算法的;
⑤我认为重中之重就是在掌握了算法、数据结构原理之后,就需要不停地敲代码、练习,你可以去牛客网、LeetCode等网站上面去刷题,正所谓好记性不如烂笔头,你如果只是不停的去看,不停地了解,那么你只是懂了理论知识,所以在看了之后需要去动手敲,说不定哪天你就自己敲出了个新时代呢!
浙公网安备 33010602011771号