Ocena użytkownikóww: ***** / 4
Nadesłany przez Dominik Goździuk, 12 października 2011 00:43
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
ScalanieCiagow.java:
//Scalanie ciagow
//(c) Dominik Goździuk
//www.algorytm.org
public class ScalanieCiagow {
private static int[] tab = {1, 5, 13, 24, 35, 48, 59, 67, 86, 94};
private static int[] tab2 = {2, 4, 11, 27, 49, 53, 64, 74, 85, 99};
private static int[] tab_wynikowa;
public static void main(String[] args) {
int i, j, k;
//Wypisz zawartosc pierwszego ciagu
System.out.println("Pierwszy ciag:");
for (int e : tab) {
System.out.print(e + ", ");
}
//Wypisz zawartosc drugiego ciagu
System.out.println("\nDrugi ciag:");
for (int e : tab2) {
System.out.print(e + ", ");
}
//Utworz tablice wynikowa
tab_wynikowa = new int[20];
//Bierz mniejsza wartosc z pierwszego badz drugiego ciagu,
//dopoki zaden z nich sie nie skonczy
for (i = j = k = 0; i < 10 && j < 10; k++) {
if (tab[i] < tab2[j]) {
tab_wynikowa[k] = tab[i];
++i;
}
else {
tab_wynikowa[k] = tab2[j];
++j;
}
}
//Jeden z ciagow sie skonczyl dopisz do wyniku pozostaly
if (i < 10) {
for (; i < 10; i++, k++) {
tab_wynikowa[k] = tab[i];
}
}
else {
for (; j < 10; j++, k++) {
tab_wynikowa[k] = tab2[j];
}
}
//Wypisz wynik
System.out.println("\nCiag wynikowy:");
for (int e : tab_wynikowa) {
System.out.print(e + ", ");
}
}
}