排序方法未正确排序

此方法应该在选定文件后按字母顺序对给定文件中的单词进行排序。一切正常,只是没有正确排序。输入文件显示“kundu is a man kundu man”,但无论我尝试什么,我都会得到“[is, kundu, a, man, kundu, man]”。


我试着拿走“-1”和“+1”,但这无济于事。


private String[] selectionSort(String[] stringArray)

{

    for(int j = 0; j < stringArray.length - 1; j++)

    {

        int min = j;

        for(int k = j + 1; k < stringArray.length; k++)

        {

            if(stringArray[k].compareTo(stringArray[min]) < 0)

                min = k;


            swap(stringArray, j, min); //this method swaps the words 

                                       // by using a temp

            //swap(intArray, j, min);

        }

    }


    return stringArray;

}



private void swap(String [] stringArray, int i, int j) //swap method

{

     String temp = stringArray[i];

     stringArray[i] = stringArray [j];

     stringArray[j] = temp;

}


BIG阳
浏览 97回答 1
1回答

手掌心

您的swap电话应该在内部循环之后。喜欢,private String[] selectionSort(String[] stringArray) {&nbsp; &nbsp; for (int j = 0; j < stringArray.length - 1; j++) {&nbsp; &nbsp; &nbsp; &nbsp; int min = j;&nbsp; &nbsp; &nbsp; &nbsp; for (int k = j + 1; k < stringArray.length; k++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (stringArray[k].compareTo(stringArray[min]) < 0) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; min = k;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; swap(stringArray, j, min);&nbsp; &nbsp; }&nbsp; &nbsp; return stringArray;}之后,没有其他更改和您的输入,我得到[a, is, kundu, kundu, man, man]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java