数据结构

175 阅读2分钟

1. 简述快排的过程

1)选择一个基准元素,通常选择第一个元素或者最后一个元素,
2)通过一趟排序将待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的元素值比基准值大。
3)此时基准元素在其排好序后的正确位置
4)然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。

2.用循环比递归效率高吗?

递归和循环两者完全可以互换。不能完全决定性地说循环效率比递归的效率高。
1)递归算法
优点:代码简洁
缺点:如果调用层数比较深,需要增加额外的堆栈处理。
2)循环算法
优点:速度快,结构简单。
缺点:并不能解决所有的问题。

3.解决哈希冲突的方法

1)线性探测法
2)平方探测法
3)伪随机序列法
4)拉链法

4.什么是kmp算法?

在一个字符串中查找是否包含目标的匹配字符串。其主要思想是每趟比较过程让子串先滑动一个合适的位置。在发生不匹配的情况时,不是右移一位,而是移动(当前匹配的长度-当前匹配子串的部分匹配值)位。

5.度为2的树与二叉树有什么区别

1)度为2的树要求每个节点最多只能有两棵子树,并且至少有一个节点有两棵子树。二叉树的要求是度不超过2,节点最多有两个叉,可以是1或者0。
2)二叉树有左右子树之分

6. 什么是稳定的排序算法,分别有哪些?

通俗的讲就是能保证排序前两个相等的数,其在序列中的先后位置顺序与排序后相同。 稳定的排序算法:直接插入排序,冒泡排序,归并排序,基数排序(直冒诡计)