排序方法排序不正确

Sorting Method Not Sorting Properly

此方法应该在选定文件后按字母顺序对给定文件中的单词进行排序。一切正常,只是没有正确排序。输入文件显示为 "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;
}

您的 swap 调用应该在 内部循环之后。喜欢,

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);
    }
    return stringArray;
}

之后,在没有其他更改和您的输入的情况下,我得到了

[a, is, kundu, kundu, man, man]