面试排序题(含详细答案).docxVIP

  • 0
  • 0
  • 约7.06千字
  • 约 9页
  • 2026-06-08 发布于河北
  • 举报

面试排序题(含详细答案)

一、基础必考题(入门级,考察基础逻辑)

题1:冒泡排序(最基础,高频考察)

题干:给定一个整数数组nums=[3,1,4,1,5,9,2,6],使用冒泡排序将其升序排列,要求写出完整代码(可选用Java/Python,此处以Python为例),并说明时间复杂度和空间复杂度。

详细答案:

1.核心思路:重复遍历数组,每次比较相邻的两个元素,若前者大于后者,则交换两者位置,直到整个数组有序(类比“水泡上浮”,大的元素逐步“冒”到数组末尾)。

python

defbubble_sort(nums):

#记录数组长度,避免重复计算

n=len(nums)

#外层循环:控制排序轮次,最多需要n-1轮(最后一个元素无需比较)

foriinrange(n-1):

#标记是否发生交换,优化:若某一轮无交换,说明数组已有序,直接退出

flag=False

#内层循环:每轮比较相邻元素,已“冒”到末尾的元素无需再比较

forjinrange(n-1-i):

ifnums[j]nums[j+1]:

#交换相邻元素

nums[j],nums[j+

文档评论(0)

1亿VIP精品文档

相关文档