函数实现对二维数组每一行冒泡法排序

编写函数实现对二维数组每一行用冒泡法升序排序。
函数接口定义:
void sort(int a[],int n);
其中a和n 是用户传入的参数。函数对a数组中的n个元素升序排序。

img

/* 请在这里填写答案 */
输入样例:
5 1 2 6
5 2 1 4
3 1 2 4
输出样例:
1 2 5 6
1 2 4 5
1 2 3 4

img


请问为什么ijn究竟指的什么啊 为什么我把n换成3之后答案依旧显示是对的呀?
谢谢

n代表传递的数组中元素个数
i和j是循环变量
外循环表示整个冒泡排序要运行多少次,一般n个元素需要冒泡n-1次。
内循环是从第一个元素到n-1-i次,因为每次循环,数组最后一个元素就会是当前剩余元素中的最大值,所以下一次循环就比上一次循环要少比较一个元素
比如数组 5 4 6 8 2
外层循环i是从0到3,冒泡四次即可
内层第一次循环,会比较n-1-i就是4次,先是5和4比较,5比4大,就交换变为4 5然后5和6比,不交换,然后6和8比,不交换,最后8和2比,交换为2 8,所以第一轮冒泡后就是 4 5 6 2 8
内层第二次循环,就只需要比较3次,因为最后元素8已经是最大值了。第二次是4和5比,不交换,5和6比,不交换,6和2比,交换为2 6,所以第二轮循环后就是 4 5 2 6 8
如此冒泡四次后就是 2 4 5 6 8了。每次都将最大值移动到数组尾部,就像冒泡一样,所以成为冒泡排序

void sort(int a[],int n);其中a和n 是用户传入的参数。函数对a数组中的n个元素升序排序。这里已经说明了n表示的什么。
再说说函数内部排序的实现,i是计数器,冒泡排序排n个数就要进行n-1次排序,j是用来遍历数组元素的,每次j从0开始,从a[0]往后遍历到a[n-1-i-1]

对于main函数,i,j是二维数组的行和列的下标,也就是第i行第j列的意思
对于sort函数,i,j是都是一维数组的下标,也就是第i个元素和第j个元素交换。n是一维数组的长度。你把n换成3是在哪里换的?sort(a[i], 3)吗?这样应该是不对的

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632