【发布时间】:2019-04-14 19:15:55
【问题描述】:
我需要使用基于最后一列的冒泡排序按行降序对二维数组进行排序,但我遇到了一些问题。
这是我需要按降序排列的数据,但仅基于最后一列。
6814.00 85.00 86.00 92.00 88.00 87.75
7234.00 76.00 81.00 84.00 78.00 79.75
6465.00 87.00 54.00 68.00 72.00 70.25
7899.00 92.00 90.00 88.00 86.00 89.00
9901.00 45.00 78.00 79.00 80.00 70.50
8234.00 77.00 87.00 84.00 98.00 86.50
7934.00 76.00 91.00 84.00 65.00 79.00
7284.00 56.00 81.00 87.00 98.00 80.50
7654.00 76.00 87.00 84.00 88.00 83.75
3534.00 86.00 81.00 84.00 73.00 81.00
这是我目前所拥有的。
for(int i = 0; i < 10; i++)
{
for(int j = 0; j < 6; j++)
{
if(arr1[i][5] < arr1[i+1][5])
{
int temp = arr1[i][j];
arr1[i][j] = arr1[i+1][j];
arr1[i+1][j] = temp;
}
}
}
但这就是我得到的,这显然不起作用。
6814.00 85.00 86.00 92.00 88.00 87.75
7234.00 76.00 81.00 84.00 78.00 79.75
7899.00 92.00 90.00 88.00 86.00 89.00
9901.00 45.00 78.00 79.00 80.00 70.50
8234.00 77.00 87.00 84.00 98.00 86.50
7934.00 76.00 91.00 84.00 65.00 79.00
7284.00 56.00 81.00 87.00 98.00 80.50
7654.00 76.00 87.00 84.00 88.00 83.75
3534.00 86.00 81.00 84.00 73.00 81.00
6465.00 87.00 54.00 68.00 72.00 70.00
我还注意到最后一列中的一些数字被四舍五入了,我不知道为什么。我很感激我能得到的任何帮助。
【问题讨论】:
-
您想按行还是按列对矩阵进行排序?对于排序有一个内置函数 sort(array name, length) by STL in algorithm.h
-
请按行。
-
我必须使用冒泡排序,因为这是学校的项目。
-
您有任何复杂性问题吗?
-
我不这么认为?
标签: c arrays sorting multidimensional-array 2d