Gå til innhold

[Løst] Snodighet i sorteringsalgoritme


Anbefalte innlegg

Sitter her å ikke skjønner bæret av en liten merkverdighet i sorteringsalgoritmen min..

Koden funker fint så lenge ingen av tallene er like, men om man har to av samme tall, så skjer det noe rart..

Tipper det har noe å gjøre med objektreferansene som den ikke helt liker, men det er bare et raskt prøveprosjekt, så det ble gjort sånn..

Kommer ikke til å få sove om noen ikke kan forklare det..

 

 

import java.util.LinkedList;
import java.util.Collections;
/**
* Write a description of class SelectionSort here.
* 
* @author (your name) 
* @version (a version number or a date)
*/
public class SelectionSort {
   LinkedList<Integer> list;

   public SelectionSort() {
       list = new LinkedList<Integer>();
       Integer[] i = {4,1,0,2,8,9,5,6,7,3,-1}; //funker, men f.eks {4,1,0,2,8,9,5,6,7,3,-1, 0,0} gjør ikke
       for (int x = 0; x < i.length; x++) {
           list.addLast(i[x]);
       }
       run();
   }

   public void sort() {
       for (int i = 0; i < list.size()-1; i++) { 
           Collections.swap(list, i, getLowestValue(i));
       }
   }

   private Integer getLowestValue(Integer index) {
       Integer minValue = list.get(index);
       for (int i = index; i < list.size(); i++) {
           Integer newValue = list.get(i);
           if (minValue.intValue() > newValue.intValue()) {
               minValue = newValue;
           } 
       }
       return list.indexOf(minValue);
   }

   public void print() {
       System.out.println(list.toString());
   }

   public void run() {
       print();
       sort();
       print();
   }

}

 

Endret av Markaren
Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...