您的位置:首页 > 理论基础 > 数据结构算法

数据结构与算法小结

2015-09-25 14:14 323 查看
        数据结构与算法其实是挺重要的,个人认为其是提高编程能力的重要途径,因为它们是分析问题的实用工具,不是说“程序=数据结构+算法”吗,而且在笔试和面试的时候,除了问及你一些Java或.NET基础、SQL或Linux常用指令,还会有一些关于数据结构与算法这方面的问题,下面我就总结一下这方面的知识,希望对接下来要面试的同学有所帮助,也欢迎同学们来补充和提问。

1什么叫数据结构,常用的数据结构有哪些?

       我个人理解是这样的,计算机处理的基本单元是数据元素,数据元素由数据项组成,而数据项又由数据组成。所以我们不妨把数据元素当成是一个对象,而对象与对象之间必定存在着这样或那样的关系,这个关系就是“结构”,所以这里给出一个课本上的定义,“数据结构就是相互之间有特定关系的数据元素的集合”。有人给出一个公式来解释数据结构的概念,说数据结构=数据+关系,大概说的是同一个意思,我的解读就是数据结构由两部分构成,一个是要有两个或两个以上的数据元素,一个是数据元素之间的关系。好了,那么有哪些常见的数据结构呢,大要有如下:

线性表:一对一关系,常见的有链表、栈、队列、数组。(掌握其特点,如链表是链式存储结构,适合增删;栈是先进后出,应用广泛,队列是先进先出;而数组是固定的顺序存取结构,适合查找)

树:一对多关系,常见的有二叉树和平衡树。(其中最重要的是二叉树,它的三个性质,它的前中后三个遍历以及递归与非递归操作)

图:多对多关系(掌握其广度优先与深度优先算法)

哈希表:它也是一种很重要的数据结构,用于映射的。

2算法的五个特点和常见的算法有哪些?

       通俗来讲,算法就是解决问题的步骤。它具有五个特点:有穷性、确定性、可行性、输出和输入。就目前我所学到的,分为排序算法和查找算法。一般面试官会问你常用的排序算法有哪些,这时你就可以大胆地说了,常见的排序算法有

冒泡排序法:这种算法是每次都是第一个与第二个比,然后第二个又与第三个比,再是第三个与第四比。。。

选择排序法:这种算法是先确定最小的数放在第一位,再确定剩下最小的数放在第二位,再确定剩下最小的数放在第三位。。。

快速插入法:这种算法是先选择一个数作为轴,比他小的在左边,比他大的在右边,左边的那个几数又循环这种做。。。

直接插入法:这种算法是先保持第一个,然后把第二个插进去,构成一个有序列,再把第三个数插进去又构成一个又序列。。。

希尔插入法:这种算法是按步长n/2,n/4.. 作为步长把数列分割成几个数列,每个数列对应的数字进行比较并放在对应的数列位置上。。。

其他的还有堆排序法,归并排序法等等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 算法