给定数组{12 30 40 0 47},外循环i=3时排序交换次数为3的原因?
关于测验题中外循环i=3时交换次数的分析
因为题目未指定具体排序算法,结合答案为3的结果,可确定题目默认使用从小到大排序的插入排序,以下是具体过程:
假设数组索引从0开始,插入排序的外循环变量i表示当前待插入元素的索引(前i个元素已完成排序)。初始数组为{12, 30, 40, 0, 47}:
当外循环执行i=3时,待插入元素是索引3位置的0,需要与前面已排序的{12, 30, 40}逐个比较,遇到比0大的元素就交换:
- 第一次交换:
0与40交换,数组变为{12, 30, 0, 40, 47} - 第二次交换:
0与30交换,数组变为{12, 0, 30, 40, 47} - 第三次交换:
0与12交换,数组变为{0, 12, 30, 40, 47}
此时0已到达合适位置,停止交换,总共发生3次交换,与题目答案一致。
内容的提问来源于stack exchange,提问作者Sheep_Walker
相关产品推荐
相关产品推荐

