【C】二维数组每行冒泡排序

void sort2D(int arr[][cols], int rows, int cols) {
    int temp;
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols - 1; j++) {
            for (int k = 0; k < cols - j - 1; k++) {
                if (arr[i][k] > arr[i][k + 1]) {
                    temp = arr[i][k];
                    arr[i][k] = arr[i][k + 1];
                    arr[i][k + 1] = temp;
                }
            }
        }
    }
}
​

ChatGPT的解释

当你调用sort2D函数时,它会对一个二维整数数组进行排序。这个函数接受三个参数:

  • arr[][cols]:这是一个二维整数数组作为输入,cols是列数未知的二维数组。这意味着cols需要在函数外部定义,并且函数内部使用该参数对二维数组进行排序。
  • rows:表示二维数组中行的数量。
  • cols:表示二维数组中每行的列数。

函数本身是一个冒泡排序算法的实现,它遍历二维数组的每一行,并对每一行中的元素进行冒泡排序。

具体来说,这个函数使用了三重嵌套循环:

  • 外部的第一个循环 for (int i = 0; i < rows; i++) 用于遍历每一行。
  • 内部的第二个循环 for (int j = 0; j < cols - 1; j++) 控制每行中需要比较的元素数量。
  • 最内部的第三个循环 for (int k = 0; k < cols - j - 1; k++) 实际执行冒泡排序算法。它比较相邻的元素,如果它们的顺序不正确(按升序排序),则交换它们的位置。

这个函数的目的是对二维数组中的每一行进行排序,确保每一行的元素都按升序排列。

© 版权声明
THE END
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容