✏️ 纠错
第 248 题 / 共 301 题
第7题 无论初始数组是否有序,选择排序都执行O(n2)次比较。
你真棒!
📝 题目解析
【考纲知识点】选择排序的时间复杂度分析、算法稳定性
【正确答案】√
【题目解析】
选择排序的核心逻辑:
将数组分为已排序和未排序两部分,每轮从未排序部分中选择最小元素,与未排序部分的第一个元素交换。
无论数组初始状态如何,每轮都需遍历未排序部分的所有元素,确定最小值。
比较次数分析:
第1轮:比较n-1次
第2轮:比较n-2次
...
第n-1轮:比较 1次
总比较次数:
关键点验证:
与初始状态无关:无论数组是否有序,每轮遍历的元素数量固定,比较次数始终为O(n2)。
对比其他排序:
冒泡排序:若数组已有序,可通过标志位提前终止,最好情况为O(n)。
插入排序:若数组接近有序,比较次数接近O(n)。
选择排序:无优化可能,始终为O(n2)。
结论:选择排序的比较次数与初始数组状态无关,始终为O(n2),答案为√。