前端面试:JS冒泡排序专项题库(含详细真实面试版答案).docxVIP

  • 0
  • 0
  • 约3.34千字
  • 约 5页
  • 2026-08-01 发布于河北
  • 举报

前端面试:JS冒泡排序专项题库(含详细真实面试版答案).docx

前端面试:JS冒泡排序专项题库(含详细真实面试版答案)

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

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

参考答案:

冒泡排序是最基础的交换类排序算法,核心逻辑就是相邻元素两两对比,逆序就交换位置。

整个过程就像水里的气泡往上冒:每一轮遍历数组,都会把当前未排序部分的最大值逐步交换到末尾,经过多轮遍历,最后整个数组就变成有序的了。

简单总结三个关键点:

比较方式:只对比相邻两个元素

动作:前大后小就交换(升序)

结果:每一轮确定一个最大值的最终位置

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

参考答案:

时间复杂度:最坏/平均O(n2),最好O(n)(优化后)

空间复杂度:O(1),属于原地排序,不额外开辟数组空间,只用到临时交换变量

稳定性:稳定排序

补充面试口语解释:

普通冒泡不管数组是否有序,都会走完双层循环,所以最差和平均都是n平方;优化后如果某一轮没有发生任何交换,说明数组已经有序,可以直接终止遍历,最好情况就是O(n)。

稳定的意思是:数组中值相等的元素,排序后相对位置不会改变。

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

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

参考答案(可直接面试默写):

javascript

//基础冒泡排序

functionbubbleSort(arr){

//避免修改原数组

constli

文档评论(0)

1亿VIP精品文档

相关文档