Java Algorithms Sort Selection Sort

Introduction

Suppose that we want to sort a list in ascending order.

Selection sort finds the smallest number in the list and swaps it with the first element.

It then finds the smallest number remaining and swaps it with the second element, until only a single number remains.

import java.util.Arrays;

public class Main {
  /** The method for sorting the numbers */
  public static void selectionSort(double[] list) {
    for (int i = 0; i < list.length - 1; i++) {
      // Find the minimum in the list[i..list.length-1]
      double currentMin = list[i];
      int currentMinIndex = i;

      for (int j = i + 1; j < list.length; j++) {
        if (currentMin > list[j]) {
          currentMin = list[j];/*ww  w .  j  av a  2s . c  o m*/
          currentMinIndex = j;
        }
      }

      // Swap list[i] with list[currentMinIndex] if necessary;
      if (currentMinIndex != i) {
        list[currentMinIndex] = list[i];
        list[i] = currentMin;
      }
    }
  }

  public static void main(String[] args) {
    double[] list = { 1, 9, 4.5, 6.6, 5.7, -4.5 };
    System.out.println(Arrays.toString(list));
    selectionSort(list);
    System.out.println(Arrays.toString(list));

  }
}



PreviousNext

Related