Flyplass : Antall avganger
Stockholm (ARL) : 12
Oslo (OSL) : 8
København (CPH) : 6
Praha (PRG) : 5
Stavanger (SVG) : 4
Barcelona (BCN) : 3
Paris-Orly (ORY) : 2
Wien (VIE) : 2
Bodø (BDO) : 1
Dusseldorf (DUS) : 1
Flyplasser sortert etter antall avganger.
Flyplass : Antall avganger
Oslo (OSL) : 12
København (CPH) : 8
Stockholm (ARL) : 6
Stavanger (SVG) : 5
Bodø (BDO) : 4
Dusseldorf (DUS) : 3
Paris-Orly (ORY) : 2
Praha (PRG) : 2
Wien (VIE) : 1
Barcelona (BCN) : 1
class Sorterprogram {
/** Skriv ut flyplasser med assosiert antall avganger.
* @param flyplasser tabell med flyplasser
* @param antallAvganger assosiert tabell med antall avganger hver dag */
public static void skrivUt(String[] flyplasser, int[] antallAvganger) {
assert (flyplasser.length == antallAvganger.length) : "Tabeller ikke assosiert.";
System.out.println(" Flyplass : Antall avganger");
for (int i = 0; i < flyplasser.length; ++i) {
System.out.printf("%16s : %2d%n", flyplasser[i], antallAvganger[i]);
}
System.out.println();
}
/** sorter tabeller flyplasser og antallAvganger etter antall avganger fra en flyplass.
* @param flyplasser tabell med flyplasser
* @param antallAvganger assosiert tabell med antall avganger hver dag */
public static void sorterVedUtvlag(String[] flyplasser, int[] antallAvganger) {
// For hvert gjennomløp:
for (int ind = 0; ind < antallAvganger.length - 1; ind++) {
// Finn minste-verdi i usortert del av tabellen
int indTilMinste = ind;
for (int k = ind + 1; k < antallAvganger.length; k++) {
if (antallAvganger[k] > antallAvganger[indTilMinste]) {
indTilMinste = k ;
}
}
// Bytt om minste-verdi og første element i usortert del
int temp = antallAvganger[ind];
antallAvganger[ind] = antallAvganger[indTilMinste];
antallAvganger[indTilMinste] = temp;
}
}
public static void main(String[] args){
// flyplasser
String[] flyplasser = {
"Stockholm (ARL)", "Oslo (OSL)", "København (CPH)",
"Praha (PRG)", "Stavanger (SVG)", "Barcelona (BCN)",
"Paris-Orly (ORY)", "Wien (VIE)", "Bodø (BDO)",
"Dusseldorf (DUS)" };
// assosiert tabell med antall avganger per dag
int[] antallAvganger = {
6, 12, 8,
2, 5, 1,
2, 1, 4, 3 };
System.out.println("Flyplasser usortert.");
skrivUt(flyplasser, antallAvganger);
System.out.println("Flyplasser sortert etter antall avganger.");
sorterVedUtvlag(flyplasser, antallAvganger);
skrivUt(flyplasser, antallAvganger);
}
}
class Sorterprogram {
/** Skriv ut flyplasser med assosiert antall avganger.
* @param flyplasser tabell med flyplasser
* @param antallAvganger assosiert tabell med antall avganger hver dag */
public static void skrivUt(String[] flyplasser, int[] antallAvganger) {
assert (flyplasser.length == antallAvganger.length) : "Tabeller ikke assosiert.";
System.out.println(" Flyplass : Antall avganger");
for (int i = 0; i < flyplasser.length; ++i) {
System.out.printf("%16s : %2d%n", flyplasser[i], antallAvganger[i]);
}
System.out.println();
}
/** sorter tabeller flyplasser og antallAvganger etter antall avganger fra en flyplass.
* @param flyplasser tabell med flyplasser
* @param antallAvganger assosiert tabell med antall avganger hver dag */
public static void sorterVedUtvlag(String[] flyplasser, int[] antallAvganger) {
// For hvert gjennomløp:
for (int ind = 0; ind < antallAvganger.length - 1; ind++) {
// Finn minste-verdi i usortert del av tabellen
int indTilMinste = ind;
for (int k = ind + 1; k < antallAvganger.length; k++) {
if (antallAvganger[k] > antallAvganger[indTilMinste]) {
indTilMinste = k ;
}
}
// Bytt om minste-verdi og første element i usortert del
int avgang = antallAvganger[ind];
antallAvganger[ind] = antallAvganger[indTilMinste];
antallAvganger[indTilMinste] = avgang;
}
for (int ind = 0; ind < flyplasser.length - 1; ind ++) {
int indTilMinste = ind;
for (int k = ind + 1; k < flyplasser.length; k++) {
if (flyplasser[k].compareTo(flyplasser[indTilMinste]) < 0) {
indTilMinste = k;
}
}
String flyplass = flyplasser [ind];
flyplasser [ind] = flyplasser [indTilMinste];
flyplasser [indTilMinste] = flyplass;
}
}
public static void main(String[] args){
// flyplasser
String[] flyplasser = {
"Stockholm (ARL)", "Oslo (OSL)", "København (CPH)",
"Praha (PRG)", "Stavanger (SVG)", "Barcelona (BCN)",
"Paris-Orly (ORY)", "Wien (VIE)", "Bodø (BDO)",
"Dusseldorf (DUS)" };
// assosiert tabell med antall avganger per dag
int[] antallAvganger = {
6, 12, 8,
2, 5, 1,
2, 1, 4, 3 };
System.out.println("Flyplasser usortert.");
skrivUt(flyplasser, antallAvganger);
System.out.println("Flyplasser sortert etter antall avganger.");
sorterVedUtvlag(flyplasser, antallAvganger);
skrivUt(flyplasser, antallAvganger);
}
}
dundee skrev:Anbefaler deg å kikke på muligheten til å bruke Collections i stedet for arrays. F.eks kan du bruke varianter av Map hvor du knytter flyplass og antall avganger sammen. Du får også langt bedre muligheter til å sortere ved bruk av set eller list.
Registrerte brukere: Google [Bot]