什么是算法与数据结构

1.什么是数据结构

我们可以想象一下:内存就是一个有很多标上序号的格子的大容器(可能有上亿个),CPU可以通过序号取到格子里的数据(0或者1),然后cpu用它仅有的几个指令执行运算,最后将运算结果放回到格子里。

但是我们怎么很好的使用这些格子呢?如果是随意放,下次我们怎么找到放进去的数据呢?怎么存放指定格式的数据?等等

数据结构正是解决这些问题,所以数据结构就是计算机里存放,组织数据的一种方式。

比如数组就是把数据存在一段连续的内存上,而链表则是通过指针的关联将数据存在任意可用的内存上;栈是先进后出,队列是先进先出

常用的结构有数组、栈、队列、链表、树、堆、图、散列表等。

2.什么是算法

现实中一切可以用计算解决的问题都可以用计算机解决,而计算就要离不开算法。算法是利用计算机解决问题的处理步骤,简而言之,算法就是解决问题的步骤

怎么样的解决问题方案才称为算法?

  •   有效性:算法必须要为给定的任务给出正确的结果,即,有满足条件的输入值时,此算法一定要保证正常工作(返回正确的输出值)。表明算法有效性的方法之一就是断点。断点设置在算法的任意位置上,判断此位置是否满足给出的条件,即,程序是否正确运行。
  •   终止性:算法中没有永远反复执行,即,没有无限循环,且不返回答案的情况。算法终止性可以用反复处理结束条件的判断变量,或经过有限次的反复一定能到达结束条件等方法证明。

常用的算法有:排序(冒泡、选择、归并、希尔等)、查找(线性、二分法)、字符串模式匹配(KMP算法)等。

3.算法和数据结构是什么关系?

数据结构是为算法服务的,算法要作用在特定的数据结构之上。因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。

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

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