搜索
写经验 领红包
 > 情感

数据结构的重要性和意义(数据结构的重要性和应用)

导语:数据结构的重要性

大二上学期开了一门课叫数据结构,一开始跟着老师学,要想学好还是得花点功夫,等到学期末有一个关于数据结构的实训,但是一星期下来,写的项目,并没有用上太多的数据结构,只用了一些简单的栈队列还有一点二分的思想,有些数据结构都是强加上去的,感觉这个项目并没有太需要数据结构,没有用武之地。

虽然我写项目没用上,肯定是因为我菜,我相信在大的项目里,肯定用到了大量的数据结构,我现在不知道数据结构该用到哪里,但我知道数据结构可以使程序的时间复杂度或者空间复杂度大大降低,下面我就拿我学的一些数据结构和算法来举例说一下。

1.二分查找

二分的思想用的非常多,像二叉排序树,二叉平衡树,还有普通的二分查找。

给出一串有序的数,当想查找其中的一个数,普通的方法是从头或者从尾开始遍历的找,当数据量很小的时候,我相信是很快的,假如数据量是亿级以上的,这种遍历的方法就显得十分慢了,平均查找长度比较大,当n比较大时,查找效率会很低,时间复杂度为O(n)。

但如果用二分查找的话,时间复杂度是O(log2n),这样差别就非常大了。

2.线段树

线段树主要用于区间中的多次查询,比如求区间和,区间最大,区间最小,区间更新等等。

给出一串数,当要求其中的一段区间的和的话,最直观的方法就遍历,如果多次查询多个区间的和或者最大最小,用的时间将非常多,这肯定是不呢个接受的,这时候线段树就有它明显的优势,可以快速的求出这一系列的东西。

线段树是首先对这些数进行一个预处理,然后以后的每次询问的时间复杂度是O(logN),这样就非常的快了,不得不说,线段树真的很神奇,有兴趣的小伙伴可以去学习一下。

3.排序

排序有很多种,这里就例举一下各种排序的时间复杂度和空间复杂度

<hr>

数据结构中必要重要的几个概念和算法。

★ 算法效率的度量和存储空间需求

★ 线性表

★循环链表与双向链表

★ 栈的表示与实现

★ 队列

★ 串

★广义表

★树、二叉树及树的遍历

★图及图的遍历

★查找算法:顺序查找,二分法,哈希

★ 排序:插入排序,快速排序,选择排序,归并排序等等。

★ 顺序文件,索引文件

还有许多高级的数据结构,比如线段树,字典树,AC自动机,凸包等等的好多,我感觉数据结构是基础,在做大项目的时候肯定能用到。‘

小编还是个菜鸟,分享一下自己的感受,大牛们如果不认同小编的看法,可以给小编提出来,小编会虚心接受的,如果喜欢,请点个关注,小编会努力的。

本文内容由小迪整理编辑!