冒泡按升序和降序排序Java中的矩阵

时间:2016-12-09 10:34:14

标签: java bubble-sort

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整数)同时按降序排序。

我的目标是打印出这些元素的表格,按升序排列,降低成本。

无需帮助打印,只需排序。

1 个答案:

答案 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])