按升序排列2d数组中的数字,然后在1d中显示它

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按升序排列2d数组中的数字,然后在1d中显示它相关的知识,希望对你有一定的参考价值。

所以我的任务是取20个数字,将其放入4 x 5数组中,然后按升序对其进行排序,然后将其输出为1d数组。到目前为止,我的代码只是将2d更改为1d,但还不能对其进行排序。

 #include <iostream>

using namespace std;

int main()

    const int SIZE = 20;
    const int ROW = 4;
    const int COLUMN = 5;

    int numbers[ROW][COLUMN] =  16, 22, 99, 4, 18, -254, 4, 101,
    5, 98, 105, 6, 15, 2, 45, 33, 88, 72, 16, 3 ;

    int sort[SIZE] = ;

    for (int i = 0; i < ROW; i++)
    
        for (int j = 0; j < COLUMN; j++)
        
            sort[i] = numbers[i][j];
            cout << sort[i] << endl;
        
    

    return (0);

答案

这是一个很好的例子,为什么永远不使用using namespace std;。您正在使用名称为sort的变量,而我们想使用sort函数。因此,请永远不要使用using namespace std;

下一个。您可以使用算法库中的std::sort。由于您的C样式数组作为连续字节存储在内存中,因此我们可以通过指针对其进行访问。

请参阅:

 #include <iostream>
 #include <algorithm>

int main()

    constexpr size_t SIZE = 20;
    constexpr size_t ROW = 4;
    constexpr size_t COLUMN = 5;

    int numbers[ROW][COLUMN]  
        16, 22, 99, 4, 18, 
        -254, 4, 101, 5, 98, 
        105, 6, 15, 2, 45, 
        33, 88, 72, 16, 3 
    ;

    int sort[SIZE];
    int *num = reinterpret_cast<int*>(numbers);
    std::sort(num, num+SIZE);

    for (int i = 0; i < ROW; i++)
    
        for (int j = 0; j < COLUMN; j++)
        
            sort[i] = numbers[i][j];
            std::cout << sort[i] << std::endl;
        
    

    return (0);

以上是关于按升序排列2d数组中的数字,然后在1d中显示它的主要内容,如果未能解决你的问题,请参考以下文章

access 按某一字段的几个字符排序

php之快速入门学习-11(数组排序)

js数组排序的六种方法

2021-09-26:搜索旋转排序数组。整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了

JavaScript数字数组怎么按数字大小排序?

将javascript数组中的重复值分组在一起,然后按值名称升序对这些组进行排序