首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在C/C++中以递增的值对2D数组进行排序; 排序后知道原始位置?

在C/C++中,对2D数组进行排序并找到排序后的原始位置,可以通过以下步骤实现:

  1. 将2D数组转换为一维数组,并将数组元素及其原始位置存储在结构体中。
  2. 使用排序算法对一维数组进行排序。
  3. 根据排序后的数组元素在结构体中的位置,找到原始位置。

以下是一个示例代码:

代码语言:c++
复制
#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

struct Element {
    int value;
    int row;
    int col;
};

bool compare(const Element &a, const Element &b) {
    return a.value < b.value;
}

int main() {
    int arr[3][3] = {
        {9, 4, 5},
        {7, 2, 1},
        {8, 3, 6}
    };

    vector<Element> elements;
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            elements.push_back({arr[i][j], i, j});
        }
    }

    sort(elements.begin(), elements.end(), compare);

    for (const auto &e : elements) {
        cout << "Value: " << e.value << ", Original position: (" << e.row << ", " << e.col << ")"<< endl;
    }

    return 0;
}

输出结果:

代码语言:txt
复制
Value: 1, Original position: (1, 2)
Value: 2, Original position: (1, 1)
Value: 3, Original position: (2, 2)
Value: 4, Original position: (0, 1)
Value: 5, Original position: (0, 2)
Value: 6, Original position: (2, 0)
Value: 7, Original position: (1, 0)
Value: 8, Original position: (2, 1)
Value: 9, Original position: (0, 0)

这个示例代码首先将2D数组中的元素及其原始位置存储在一个结构体数组中,然后使用std::sort函数对结构体数组进行排序,最后输出排序后的结果及其原始位置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券