Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/SelectionSort/Musterloesung

Lösung

/*
 * @author Sebastian Peuser
 */
public class SelectionSort{

   public static void main(String[] args){
       
       int[] array = {3,5,3,2,6,4,8,6,4,9};
       
       sortArray(array);
   }
   
   /*
    * Hier wird das Array sortiert
    */
   public static void sortArray(int[] array){
       
       for(int i=0;i<array.length;i++){
           
           printArray(array);
           int minimum = findMinimum(array,i,array.length-1);
           
           swap(array,i,minimum);
       }
   }
   
   /*
    * Hier werden 2 Elemente des Arrays getauscht
    */
   private static void swap(int[] array, int position1, int position2){
       
       int tmp=array[position1];
       array[position1] = array[position2];
       array[position2] = tmp;
   }
   
   /*
    * Hier wird das Minimum des Teil-Arrays gefunden und der Index (wo es sich befindet) zurueckgegeben
    */
   private static int findMinimum(int[] array, int startIndex, int endIndex){
       
       int position = startIndex;
       int currentMinimum = array[startIndex];
       
       for(int i=startIndex+1;i<=endIndex;i++){
           
           if(array[i]<currentMinimum){
               position = i;
               currentMinimum = array[i];
           }
       }
       
       return position;
   }
   
   /*
    * prueft, ob ein Array sortiert ist
    */
   public static boolean isSorted(int[] array){
       
       boolean var = true;
       
       for(int i=1;i<array.length;i++){
           
           if(array[i]<array[i-1]){
               var = false;
               break;
           }
       }
       
       return var;
   }
   
   /*
    * Ein Array wird auf der Konsole ausgegeben
    */
   public static void printArray(int[] array){
       
       for(int i=0;i<array.length;i++){
           
           System.out.print(array[i]+"  ");
       }
       
       System.out.println();
   }
}