请在我的选择排序代码中澄清我的错误

时间:2016-09-11 14:18:21

标签: java algorithm sorting

在此方法中,只有一个元素被排序,其余元素未被排序。

请帮我找出实际问题的位置

out.writeBytes(text.getText().toString());

2 个答案:

答案 0 :(得分:1)

您的错误是您的内部循环应该从i+1开始,而不是从1开始。

public static int[] selectSort(int[] arr) {

    int n = arr.length;
    for (int i = 0; i < n - 1; i++) {
        int min_Ele = i;
        for (int j = i+1; j < n; j++) {
            if (arr[j] <= arr[min_Ele]) {
                min_Ele = j;
            }
        }
        if (i != min_Ele){
            //swap
            int tmp = arr[i];
            arr[i] = arr[i = min_Ele];
            arr[min_Ele] = tmp;
        }
    return arr;
}

答案 1 :(得分:-3)

private static int[] selectSort(int[] arr) {

    int n = arr.length;
    for (int i = 0; i < n-1; i++) {
        int min_Ele = i;
        for (int j = i+1; j < n; j++) {
            if (arr[j] <= arr[min_Ele]) {
                min_Ele = j;
            }
        }
        if (i != min_Ele) {
          int tmp = arr[i];
          arr[i] = arr[min_Ele];
          arr[min_Ele] = tmp;
        }
     }
    return arr;
}