作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
10x10 矩阵分为 4 部分,右四分之一按行中的 any_method 排序:
我是初学者。我完全不明白选择正确的季度进行进一步排序的算法是如何真正起作用的。这是我目前所拥有的。
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
srand(time(0));
const int size = 10;
int matrix[size][size];
int sum = 0;
system("mode con cols=100 lines=70");
cout << "Source matrix 10x10" << endl;
cout << endl;
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
matrix[i][j] = rand() % 50;
}
}
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
cout << matrix[i][j] << "\t";
}
cout << endl << endl;
}
cout << endl;
cout << "Transformed matrix 10x10" << endl;
int temp;
int k = 0;
int cond = 0;
for (int s = 0; s < size; s++)
{
for (int i = 0; i < size; i++)
{
for (int j = size - 1; j > i; j--)
{
if (matrix[s][j] < matrix[s][j - 1])
{
temp = matrix[s][j];
matrix[s][j] = matrix[s][j - 1];
matrix[s][j - 1] = temp;
}
}
}
}
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
cout << matrix[i][j] << "\t";
}
cout << endl << endl;
}
cout << endl << sum << endl;
return 0;
system("pause");
}
最佳答案
I have got some problems with how actually i am going to pick the region of the right quarter. So choosing the right quarter higher in priority then sorting
我用过std::sort
演示对 10 x 10 矩阵的右四分之一进行排序。
代码注释中解释了我的逻辑:
void sortRightQuarter(int m[10][10])
{
/*
Indexes of the elements in the Right Quarter
(0, 9) // already sorted
(1, 8), (1, 9) // i = 1, k = 8
(2, 7), (2, 8), (2, 9) // i = 2, k = 7
(3, 6), (3, 7), (3, 8), (3, 9) // i = 3, k = 6
(4, 5), (4, 6), (4, 7), (4, 8), (4, 9) // i = 4, k = 5
(5, 5), (5, 6), (5, 7), (5, 8), (5, 9) // i = 5, k = 5
(6, 6), (6, 7), (6, 8), (6, 9) // i = 6, k = 6
(7, 7), (7, 8), (7, 9) // i = 7, k = 7
(8, 8), (8, 9) // i = 8, k = 8
(9, 9) // already sorted
*/
// Sort the rows [1, 8]
int k = 8;
for (int i = 1; i <= 8; ++i)
{
// pick your favorite sorting function
// to sort elements in the range [m[i][k], last element of the row]
sort(&m[i][k], &m[i][10]);
// change the value of k
if (i < 4)
--k;
else
++k;
}
}
我用你的代码来测试我的功能。效果很好。
关于c++ - 如何仅对 10 x 10 矩阵的右四分之一进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60992815/
我是一名优秀的程序员,十分优秀!