Java排序算法高频面试题及详细答案(实战版).docxVIP

  • 1
  • 0
  • 约5.46千字
  • 约 7页
  • 2026-09-20 发布于河北
  • 举报

Java排序算法高频面试题及详细答案(实战版).docx

Java排序算法高频面试题及详细答案(实战版)

一、基础概念类面试题

1.日常开发中常用的排序算法有哪些?各自的适用场景?

参考答案:

常用基础排序:冒泡、选择、插入、希尔、快速、归并、堆排序,Java开发最常用的是快速排序、归并排序、堆排序。

各场景总结:

冒泡/选择排序:简单好写,效率极低,时间复杂度O(n2),仅适合教学、极小量数据,项目中基本不用。

插入排序:小规模有序数据效率很高,Java底层排序会用到它做辅助优化。

快速排序:平均效率最高,O(nlogn),大数据量首选,不稳定排序,适合普通数组排序。

归并排序:稳定排序,O(nlogn),占用额外空间,适合外排序、链表排序、要求排序稳定的场景。

堆排序:O(nlogn),空间占用小,不稳定,适合求TopN、海量数据极值场景。

2.排序算法的稳定和不稳定指什么?哪些是稳定排序?

参考答案:

稳定排序:数组中两个相等的元素,排序后相对位置不会改变。

不稳定排序:相等元素排序后,原有相对位置可能被打乱。

稳定排序:冒泡、插入、归并、计数排序。

不稳定排序:选择、快速、希尔、堆排序。

业务场景举例:如果根据分数排序学生,分数相同需要保留原有录入顺序,就必须用稳定排序。

3.时间复杂度O(n2)、O(nlogn)的排序分别有哪些?

参考答案:

O(n2):冒泡排序、选择排序、插入排序(适合小数据量)。

O(nlog

文档评论(0)

1亿VIP精品文档

相关文档