Uppgiften går ut på att implementera en metod som sorterar en array av heltal och ett litet användargränssnitt till denna. Utgå från följande påbörjade klass:

class Lab1 {
 public static void sort(int[] a) {
  ...
 }

 public static void main(String[] args) throws Exception {
  ...
 }
}

Metoden sort ska sortera arrayen a i växande ordning. Om a exempelvis från början är {5, 2, 7, 8, -1, 6, 2} ska den efteråt vara {-1, 2, 2, 5, 6, 7, 8}. Vilken generell sorteringsalgoritm som helst, t. ex. urvalssortering (selection sort) eller insättningssortering (insertion sort). Vill man ge sig på något mer avancerat kan man istället välja t.ex. quicksort. Metoden får inte anropa någon existerande sorteringsmetod i Java-biblioteket. Metoden ska inte ha några andra effekter än att ändra i a, t.ex. inte skriva ut någon text. Metoden ska kunna hantera arrayer av längden 0 och uppåt.

main-metoden ska läsa in innehållet i en fil som innehåller heltal separarade med mellanslag och skriva ut dessa heltal i sorterad ordning. Om man vill sortera listan som finns i ex1.txt exekverar man programmet så här och bör få följande svar:

$ java Lab1 ex1.txt
2 4 5 6 8 10 12 15 17 23 25 

För att utföra sorteringen ska sort anropas. Om inget argument är angivet ska programmet svara med ett felmeddelande:

$ java Lab1
inget filnamn specificerat

Om flera argument anges ska programmet använda det första som filnamnet och strunta i de följande. Ert program behöver inte hantera IO-undantag, t.ex. p.g.a. att den angivna filen inte existerar. Alltså får det bli så här:

$ java Lab1 finns_ej.fil
Exception in thread "main" java.nio.file.NoSuchFileException: finns_ej.fil
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
...

För att testa att er sort gör rätt kan ni använda testprogrammet Lab1Test.java. Programmet testar metoden Lab1.sort så se till att er klass finns tillgänglig, exempelvis genom att låta båda java-filerna och deras klassfiler ligga i samma filkatalog.

$ java Lab1Test
2000 tester gjorda utan att fel hittats i Lab1.sort

Se till att er sort klarar testet innan ni lämnar in.

Tänk på att följa de allmänna riktlinjerna för programmeringsstil som anges på sidan Laborationer.

Skicka in följande (lös fil, ej inuti .zip eller dylikt):