- 1
- 0
- 约5.46千字
- 约 7页
- 2026-09-20 发布于河北
- 举报
Java排序算法高频面试题及详细答案(实战版)
一、基础概念类面试题
1.日常开发中常用的排序算法有哪些?各自的适用场景?
参考答案:
常用基础排序:冒泡、选择、插入、希尔、快速、归并、堆排序,Java开发最常用的是快速排序、归并排序、堆排序。
各场景总结:
冒泡/选择排序:简单好写,效率极低,时间复杂度O(n2),仅适合教学、极小量数据,项目中基本不用。
插入排序:小规模有序数据效率很高,Java底层排序会用到它做辅助优化。
快速排序:平均效率最高,O(nlogn),大数据量首选,不稳定排序,适合普通数组排序。
归并排序:稳定排序,O(nlogn),占用额外空间,适合外排序、链表排序、要求排序稳定的场景。
堆排序:O(nlogn),空间占用小,不稳定,适合求TopN、海量数据极值场景。
2.排序算法的稳定和不稳定指什么?哪些是稳定排序?
参考答案:
稳定排序:数组中两个相等的元素,排序后相对位置不会改变。
不稳定排序:相等元素排序后,原有相对位置可能被打乱。
稳定排序:冒泡、插入、归并、计数排序。
不稳定排序:选择、快速、希尔、堆排序。
业务场景举例:如果根据分数排序学生,分数相同需要保留原有录入顺序,就必须用稳定排序。
3.时间复杂度O(n2)、O(nlogn)的排序分别有哪些?
参考答案:
O(n2):冒泡排序、选择排序、插入排序(适合小数据量)。
O(nlog
原创力文档

文档评论(0)