选择排java哪里有问题

选择排序:

选择排序在开始的时候,先扫描整个列表,以找到列表中的最小元素,然后将这个元素与第一个元素进行交换。这样最小元素就放到它的最终位置上。然后,从第二个元素开始扫描,找到n-1个元素中的最小元素,然后再与第二个元素进行交换。以此类推,直到第n-1个元素(如果前n-1个元素都已在最终位置,则最后一个元素也将在最终位置上)。

import java.util.Arrays;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int tmp;
int n = in.nextInt();
int[] arr = new int[n];
System.out.println();
for (int i = 0; i < arr.length - 1; i++) {
int index = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[index]) {
index = j;
}

    tmp = arr[i];
    arr[i] = arr[index];
    arr[index] = tmp;
  }
}
System.out.println();
System.out.println(Arrays.toString(arr));

}
}

没有输入数组的值呀,默认都是0,可以参考下这个

public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
         int n = in.nextInt();
        int[] arr = new int[n];
         for (int i = 0; i < arr.length ; i++) {
            arr[i]=in.nextInt();
        }
         for (int i = 0; i < (arr.length - 1); i++) {
            //先假设每次循环时,最小数的索引为i
            int minIndex = i;
            //每一个元素都和剩下的未排序的元素比较
            int count =0;
            for (int j = i + 1; j < arr.length; j++) {
                count++;
                if (arr[j] < arr[minIndex]) { //寻找最小数
                    minIndex = j; //将最小数的索引保存
                }
            }
            //经过一轮循环,就可以找出第一个最小值的索引,然后把最小值放到i的位置
            swap(arr, i, minIndex);
         }
        System.out.println(Arrays.toString(arr));

    }


    private static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

你的arr数组都没赋值啊