Java冒泡排序高频面试题及详细答案.docxVIP

  • 0
  • 0
  • 约3.45千字
  • 约 5页
  • 2026-10-13 发布于河北
  • 举报

Java冒泡排序高频面试题及详细答案

一、基础概念面试题(入门必问)

1.什么是冒泡排序?核心原理是什么?

参考答案:

冒泡排序是一种最基础的稳定简单排序算法,属于交换类排序。它的核心原理是相邻元素两两比较,如果前一个元素大于后一个元素(升序排序),就交换两者位置。

每一轮遍历数组后,当前未排序区间内的最大值都会像气泡一样,逐步移动到未排序区间的末尾,经过多轮遍历,最终实现整个数组有序。

简单总结三句话:

相邻比较、逆序交换

每轮冒出一个最大值

多轮遍历完成全局排序

2.冒泡排序的时间复杂度、空间复杂度分别是多少?

参考答案:

最优时间复杂度:O(n)(数组本身已经有序,需优化后才能达到)

最坏时间复杂度:O(n2)(数组完全逆序)

平均时间复杂度:O(n2)

空间复杂度:O(1),属于原地排序算法,仅需常数级临时变量做交换,不占用额外数组空间

3.冒泡排序是稳定排序吗?什么是排序稳定性?

参考答案:

冒泡排序是稳定排序。

排序稳定性指:数组中值相等的元素,排序后相对位置不发生改变。

冒泡排序只有在「前一个元素大于后一个元素」时才会交换,相等元素不会触发交换,因此能保留原有相对顺序,保证稳定性。

二、代码手写面试题(核心必考)

1.手写基础版冒泡排序(升序)

面试标准答案代码:

java

/**

*基础冒泡排序(升序)

*@paramarr待排序数组

*/

文档评论(0)

1亿VIP精品文档

相关文档