I'm trying to make a selection sort algorithm in java that finds the smallest element of an unsorted array and puts it on the end of a new array. But my program only copies the first element twice, gets the next one, and then the rest is all zeroes:
  public static int find_min(int[] a){
    int m = a[0];
    for (int i = 0; i < a.length; i++){
      if (m > a[i])
        m = a[i];
    }
    return m;
  }
  public static int[] selectionSort(int[] unsorted){
    int[] c = new int[unsorted.length];
    for(int i = 0; i < unsorted.length; i++){
      int smallest = find_min(unsorted);
      c[i] = smallest;
      unsorted = Arrays.copyOfRange(unsorted, i+1, unsorted.length );
    }
    return c;
  }
When I put in something like:
  public static void main(String[] args){
    int a[] = {1,-24,4,-4,6,3};
    System.out.println(Arrays.toString(selectionSort(a)));
  }
I get: [-24, -24, -4, 0, 0, 0]
where is this going wrong? Is this a bad algorithm?
 
    