大家好,我想對二維陣列的列進行排序。我想從用戶那里獲取陣列的維度和元素,并將其顯示為矩陣。然后減去相同陣列的排序形式。我們只需要對陣列的列進行排序。請幫忙。
類似的東西
{{0, 1, 3},
{6, 0, 8},
{5, 9, 2}}
{{0, 0, 2},
{5, 1, 3},
{6, 9, 8}}
我為此用 C 撰寫了代碼,我可以對陣列的第一列進行排序并顯示它,但我不能對其他列進行排序。我為此向你呼吁。
#include <iostream>
using namespace std;
int main()
{
int column, row;
cout << "Column = ";
cin >> column;
cout << "Row = ";
cin >> row;
int array[column][row];
int sortedarray[column];
for (int z = 0; z < column; z ) {
for (int a = 0; a < row; a ) {
cin >> array[z][a];
}
}
for (int i = 0; i < column; i ) {
sortedarray[i] = array[i][0];
}
cout << "\n";
for (int y = 0; y < column; y ) {
for (int i = 0; i < row; i ) {
cout << array[y][i] << " ";
}
cout << endl;
}
cout << "\n";
int temp = 0;
for (int i = 1; i < column; i )
for (int j = 0; j < column - i; j ) {
if (sortedarray[j] > sortedarray[j 1]) {
temp = sortedarray[j];
sortedarray[j] = sortedarray[j 1];
sortedarray[j 1] = temp;
}
}
cout << "COUT sorted array \n ";
for (int i = 0; i < column; i ) {
cout << sortedarray[i] << " ";
}
}
uj5u.com熱心網友回復:
據我了解,您需要以下內容:
1 5 6
2 8 4
9 7 3
分類為:
1 2 3
4 5 6
7 8 9
最簡單的方法是你必須將二維陣列映射到一維陣列 - “1 5 6 2 8 4 9 7 3”,使用最優化演算法對它們進行排序。這將回傳“ 1 2 3 4 5 6 7 8 9 ”,然后將其從一維陣列映射回二維陣列。
實際上,您可以實作任何排序,這取決于您的映射。
你甚至可以實作這樣的目標
1 4 7
2 5 8
3 6 9
您需要的是從二維到一維的映射。
uj5u.com熱心網友回復:
#將二維陣列轉換為一維陣列如下:
array_1d = array_2d.flatten()
列印(array_1d)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/364884.html
