数据结构 冒泡排序问题 计算交换次数一组记录(50,40,95,20,15,70,60,45,80)进行冒泡排序时,第一堂需要进行相邻记录的交换次数为___.答案写的是6次 我怎么觉得是7次 求解具体原因.
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/25 03:30:22
![数据结构 冒泡排序问题 计算交换次数一组记录(50,40,95,20,15,70,60,45,80)进行冒泡排序时,第一堂需要进行相邻记录的交换次数为___.答案写的是6次 我怎么觉得是7次 求解具体原因.](/uploads/image/z/3820704-24-4.jpg?t=%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84+%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F%E9%97%AE%E9%A2%98+%E8%AE%A1%E7%AE%97%E4%BA%A4%E6%8D%A2%E6%AC%A1%E6%95%B0%E4%B8%80%E7%BB%84%E8%AE%B0%E5%BD%95%2850%2C40%2C95%2C20%2C15%2C70%2C60%2C45%2C80%29%E8%BF%9B%E8%A1%8C%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F%E6%97%B6%2C%E7%AC%AC%E4%B8%80%E5%A0%82%E9%9C%80%E8%A6%81%E8%BF%9B%E8%A1%8C%E7%9B%B8%E9%82%BB%E8%AE%B0%E5%BD%95%E7%9A%84%E4%BA%A4%E6%8D%A2%E6%AC%A1%E6%95%B0%E4%B8%BA___.%E7%AD%94%E6%A1%88%E5%86%99%E7%9A%84%E6%98%AF6%E6%AC%A1+%E6%88%91%E6%80%8E%E4%B9%88%E8%A7%89%E5%BE%97%E6%98%AF7%E6%AC%A1+%E6%B1%82%E8%A7%A3%E5%85%B7%E4%BD%93%E5%8E%9F%E5%9B%A0.)
数据结构 冒泡排序问题 计算交换次数一组记录(50,40,95,20,15,70,60,45,80)进行冒泡排序时,第一堂需要进行相邻记录的交换次数为___.答案写的是6次 我怎么觉得是7次 求解具体原因.
数据结构 冒泡排序问题 计算交换次数
一组记录(50,40,95,20,15,70,60,45,80)进行冒泡排序时,第一堂需要进行相邻记录的交换次数为___.
答案写的是6次 我怎么觉得是7次 求解具体原因.
数据结构 冒泡排序问题 计算交换次数一组记录(50,40,95,20,15,70,60,45,80)进行冒泡排序时,第一堂需要进行相邻记录的交换次数为___.答案写的是6次 我怎么觉得是7次 求解具体原因.
正确答案是6次,冒泡排序算法如下:
for(i = 1; i < n; i++){//设下标从1开始
exchang = false;
for(j = n; j > i; j--)
if(v[j - 1] > v[j]){
Swap(v[j - 1], v[j]);
exchang = true;
}
if(!exchang) return;
}
因此在第一趟,j的值从9到2变化,当j等于1时结束.冒泡过程如下:
j的值 v[j-1] v[j] 是否需要交换 之后的v[j - 1] 之后的v[i]
9 v[8]:45 v[9]:80 否 v[8]:45 v[9]:80
8 v[7]:60 v[8]:45 是 v[7]:45 v[8]:60
7 v[6]:70 v[7]:45 是 v[6]:45 v[7]:70
6 v[5]:15 v[6]:45 否 v[5]:15 v[6]:45
5 v[4]:20 v[5]:15 是 v[4]:15 v[5]:20
4 v[3]:95 v[4]:15 是 v[3]:15 v[4]:95
3 v[2]:40 v[3]:15 是 v[2]:15 v[3]:40
2 v[1]:50 v[2]:15 是 v[1]:15 v[2]:50
从上可知,该趟冒泡共发生了6次交换