谁能解释一下双循环冒泡法代码,具体解释一下如何交换array[i]和array[j]的。

谁能解释一下双循环冒泡法代码,具体解释一下如何交换array[i]和array[j]的。,第1张

比如 array[i] = 3array[j]=4

t = array[i]-->t = 3 把array[i] 的值保存在 t里面

array[i]=array[j]-->array[i]=4 把array[j]的值给array[i]

array[j]=t -->array[j]=3 把之前保存在t里面的array[i]的值赋给 array[j]

你这个是从大到小吧, j=i的意思是 第一次i=0,外面循环完后选出最大的,然后第二次的话 i = 1,j=1开始从后面选出大的,因为第一次已经选过了,没必要再比较了,如果非要j=0开始也是可以的,不过会增加计算机计算时间

这样说够清楚了吧

最后一行 printf("%d ",a[i])后面应该有个“}”才对这个程序是对的,在a[11]这个数组里只有a[0]~a[9]这10个元素第一个for循环与第二个for循环构成嵌套,第一次循环结束找出a[0]~a[9]里最大的数,第二次结束找出a[1~a[9]]里最大的数,第三次找出a[2]~a[9]里最大的数,……这样依次类推,其实就是一个选择排序!程序中变量 p q 交替记录最大数的下标和最大数的值。这并不是一个难懂的程序,有一定基础的应该都能弄懂的。或者你回去看看有关选择排序的程序实例。这只是大致的内容,别的不需要多讲应该可以看明白的。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12006559.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存