我的数组列表中的选择排序不适用于JAVA

时间:2018-05-03 02:29:32

标签: java selection-sort

我的排序算法遇到了麻烦,它对前两张卡进行了排序,然后混淆了。数组列表是甲板的一个属性,所以我必须使用甲板类中的方法访问它,例如get card和get deck。这是我的代码:

for (int i = 0; i < 4; i++) {                                       
    minVal = deck.getCard(i).getVal();                              
        for (int j = i ; j < 5 ; j++ ) {

            if (deck.getCard(j).getVal() < minVal)                  
            {

                minVal = deck.getCard(j).getVal();                  

                for (int k = i ; k < 5 ; k++) {
                    if (deck.getCard(k).getVal() == minVal)         
                    { 

                        buffer = deck.getCard(i);                   
                        deck.set(i, deck.getCard(k));               
                        deck.set(i + 1, buffer);
                    }
                }
            }
        }
    }

这是我的输出:

Original Cards:    
3
2
14
8
6
Updated cards:
2   
3
6
6
8

1 个答案:

答案 0 :(得分:0)

int temp;
for (int i = 0; i < getCard(i).length(); i++) {
    for (int j = 1 ; j < getCard(i).length() ; j++ ) {
        if (deck.getCard(j-1).getVal() < deck.getCard(j).getVal()) {
            temp = deck.getCard(j-1).getVal();
            deck.getCard(j-1).getVal() = deck.getCard(j).getVal();
            deck.getCard(j).getVal() = temp;
        }
    }
}