- 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)