gpt4 book ai didi

c++ - 排序二维数组 C++

转载 作者:搜寻专家 更新时间:2023-10-31 00:15:30 32 4
gpt4 key购买 nike

是否可以在 C++ 中使用 qsort 或 std::sort 对二维数组进行排序,以便在每行中从左到右或每列中从上到下读取时元素按递增顺序排列?

例如,

13, 14, 15, 16
1, 4, 3, 2
7, 5, 7, 6
9, 10, 11, 12

变成:

{ 1, 2, 3, 4 }
{ 5, 6, 7, 8 }
{ 9, 10, 11, 12 }
{ 13, 14, 15, 16 }

我知道您可以通过创建两个比较函数然后首先对每一行进行排序然后比较每一行的第一个元素来建立列来做到这一点,但是有没有办法在一个函数本身中做到这一点?

最佳答案

# include <iostream>
using namespace std ;


void swap (int &x , int &y)
{
int temp = x ;
x = y ;
y = temp ;
}

void main ()
{
int arr [3][3] = {{90,80,70},{60,50,40},{30,100,10}} ;
int x ;

for (int k = 0; k < 3; k++)
{
for (int m = 0; m < 3; m++)
{
x = m+1;
for (int i = k; i < 3 ; i++)
{
for (int j = x; j < 3; j++)
{
if (arr [k][m] > arr [i][j])
swap(arr [k][m] ,arr [i][j]);
}
x=0;
}
}
}

for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
cout << arr [i][j] << " ";
}
}


system("pause");
}

C++ 对二维数组进行升序排序

关于c++ - 排序二维数组 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19237419/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com