Quesential Skrevet 21. september 2006 Del Skrevet 21. september 2006 Skal lage et program med følgende utskrift...: Eks.: Oppgi storrelsen paa sekvensen : x Tast inn et positivt heltall 1: x Sortert sekvens vil da være: x Tast inn et positivt heltall 2: x Sortert sekvens vil da være: x x *// osv... Får en masse problemer med dette, blir feil uansett liksom... Anyone? Takk Lenke til kommentar
Quesential Skrevet 21. september 2006 Forfatter Del Skrevet 21. september 2006 Dette er kildekoden jeg har prøvd å bruke...: package innl_1a; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner tastatur = new Scanner (System.in); System.out.print("Oppgi storrelsen paa sekvensen: "); int antall = tastatur.nextInt(); int[] tabell = new int[antall]; System.out.println(antall); System.out.println(""); for (int i = 0; i < antall; i++) { System.out.println("Tast inn et positivt heltall " + (i+1) + ": "); int tall = tastatur.nextInt(); int posisjon = i; for(int in = 0; in < i; in++) { if(tabell[in] > tall) { for(int inn = antall-1; inn > in; inn--) { tabell[inn] = tabell[inn-1]; posisjon = in; break; } } tabell[posisjon] = tall; System.out.print("Sortert sekvens vil da være: "); for(int innn = 0; innn <= i; innn++) { System.out.printf("%d ", tabell[innn]); } System.out.print("\n"); } } } } Lenke til kommentar
Qwark Skrevet 21. september 2006 Del Skrevet 21. september 2006 Her har jeg først lest alle tallene inn i tabellen og så sortert tabellen med en Quicksort algoritme, la også scanneren inn i en egen metode for oversikten sin del. import java.util.Scanner; public class SortTabell { public static int lesInn(){ Scanner tastatur = new Scanner (System.in); return tastatur.nextInt(); } //Quicksort Algoritme public static int[] sortTab(int[] tab, int v, int h){ int mid,tmp,i,j; i = v; j = h; mid = tab[(v + h)/2]; do { while(tab[i] < mid) i++; while(mid < tab[j]) j--; if (i <= j) { tmp = tab[i]; tab[i] = tab[j]; tab[j] = tmp; i++; j--; } } while (i <= j); if (v < j) sortTab(tab,v,j); if (i < h) sortTab(tab,i,h); return tab; } public static int [] sortTab(int[] tab){ int[] tmpTab = sortTab(tab,0,tab.length-1); return tmpTab; } // main her public static void main(String[] args) { System.out.println("Oppgi storrelsen paa sekvensen: "); int antall = lesInn(); int[] tabell = new int[antall]; System.out.println(antall + "\n"); for (int i = 0; i < tabell.length; i++) { System.out.println("Tast inn et positivt heltall " + (i+1) + ": "); tabell[i] = lesInn(); } int[] sortTabell = sortTab(tabell); System.out.print("Sortert sekvens vil da være: "); for(int innn = 0; innn <= sortTabell.length-1; innn++) { System.out.print(sortTabell[innn] + " "); } System.out.print("\n"); } } Lenke til kommentar
rusolvan Skrevet 22. september 2006 Del Skrevet 22. september 2006 (endret) Hvis du begynner med en tom int-array som tror jeg dette enklest gjøres ved innsettings-prinsippet, siden tallene alltid er sortert. elelr er dette en algortime oppgave der kjøretiden er det som skal testes? Du kan jo bruke en ArrayList med integer-objekter også hvis det er "lov" ? det forenkler endel. Endret 22. september 2006 av rusolvan Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå