按值对二维矩阵进行排序的最佳方法是什么?
我有一个二维数组:
function getMatrix(size) {
var matrix = [];
for (var i = 0; i < size; i++) {
matrix[i] = new Array(size);
}
return matrix;
};
它填充了数值,因此每个现有的 matrix[i][j]
都是一个 Number
。获取与矩阵中最高值到最低值的序列相对应的 i
和 j
对序列的最佳方法是什么?
I have a two-dimensional array:
function getMatrix(size) {
var matrix = [];
for (var i = 0; i < size; i++) {
matrix[i] = new Array(size);
}
return matrix;
};
It is filled with numeric values, so every existing matrix[i][j]
is a Number
. What is the best way to get a sequence of i
and j
pairs that will correspond to a seqence of highest to lowest values in the matrix?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我将创建一个具有属性
i
、j
和value
的类。通过将 i、j 和矩阵值填充到该对象中,为矩阵中的每个值创建一个对象。将所有对象放入一个列表中,并使用list.sort(sortFunction)
和自定义sortFunction
对列表进行排序,该自定义sortFunction
按object.value
对列表进行排序代码>.然后打印排序列表中的
(i,j)
对。I'd create a class that has attributes
i
,j
andvalue
. Create an object for each value in the matrix by filling i, j and the matrix value into this object. Put all objects in a list and sort the list withlist.sort(sortFunction)
and a self-definedsortFunction
that sorts the list byobject.value
.Then print the
(i,j)
pairs in the sorted list.