您的位置:首页 > 职场人生

算法方面面试题及个人解答

2016-05-24 18:44 417 查看

1、说说常见的排序算法时间复杂度

1、O(n^2) : 冒泡、直接插入(最好O(n))、简单选择排序

2、O(n*logn):快排(最坏:O(n*n))、归并、堆排序

3、O(d * n): 基数排序

4、根据增量函数:希尔排序

2、说说常见排序算法的优缺点

1、简单排序算法: 它们在时间复杂度上表现不是很好,但简单排序算法都是稳定的,其次,在n值比较小的情况下

简单排序算法和其它高级算法的时间差距可以接受,而且所有的简单排序算法空间复杂度为O(1)。

2、快速排序:是冒泡排序的改进形式,所以在数据基本有序时,会退化成冒泡排序,但从平均时间性能而言,快速排序 的性能最好,快速排序适用于数据量大且数据分布随机的情况。快排不是稳定的排序算法。

3、归并排序:算法稳定,且在平均情况下和最坏情况下都能保证n*log n 的时间复杂度。但是其需要的辅助空间多。

4、堆排序: 算法不稳定,能保证n *b log n 的复杂度,且只辅助空间使用不多,但是算法比较复杂。

5、希尔排序:算法不稳定,时间上表现很好。

6、基数排序:可根据多个关键字排序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息