public static void main(String[] args) {
int ROW = 10;
int COLUMN = 2;
final int RANK = 0;
final int COST = 1;
double[][] Example = {
{2, 5.60},{6, 76.00},{1,2.30},{4,22.00},{7,13.40},{5,102.00}
,{10,34.00},{9,9.99},{3,1.00},{8,15.00};
double[] tempData;
int swapCounter = 1;
int comparisons = (Example.length);
for (int zz = 0; (zz < Example.length) && (swapCounter > 0) ; zz++)
{
swapCounter = 0;
comparisons--;
//comparisons
for (int index = 0; index < comparisons ; index++)
{
if (Example[index][COST] < Example[index+1][COST] &&
(Example[index][RANK] > Example[index+1][RANK]
|| Example[index][RANK] == Example[index+1][RANK]))
{
// Sorting Matrix
tempData = Exmaple[index];
Example[index] = Example[index+1];
EXample[index+1] = tempData;
swapCounter++;
}
}
}
如何对此矩阵进行冒泡排序以使RANK(整数)按升序排列,并且命令COST(浮动pt整数)同时按降序排序。
我的目标是打印出这些元素的表格,按升序排列,降低成本。
无需帮助打印,只需排序。
答案 0 :(得分:0)
你的测试看起来很奇怪:
if (Example[index][COST] < Example[index+1][COST] &&
(Example[index][RANK] > Example[index+1][RANK]
|| Example[index][RANK] == Example[index+1][RANK]))
相当于:
if (Example[index][COST] < Example[index+1][COST] &&
Example[index][RANK] >= Example[index+1][RANK])
但也许你的意思是:
if (Example[index][RANK] > Example[index+1][RANK]
|| Example[index][RANK] == Example[index+1][RANK]
&& Example[index][COST] < Example[index+1][COST])