algorytm scalania - trudne zadanie

0

Witam, mam takie zadanie, że mając dwa posortowane rosnąco ciągi muszę je połączyć w jeden tak aby nie występowały w nim powtórzenia. Powstały jeden ciąg ma być również posortowany. Wszystko, czyli: połączenie, ustawienie w odpowiedniej kolejności i eliminacja powtarzających się liczb musi być zrobione naraz. Nie można najpierw połączyć ciągów a później posortować, tylko tak brać liczby raz z jednego raz z drugiego aby po tym połączeniu był posortowany no i się żadna liczba nie powtarzała.
Za nic nie potrafię wymyślić jak to popętlić aby działało. Dodam jeszcze że programuje w C. Pomoże ktoś?

0

Trudne zadanie :D
Porównujesz tylko pierwsze wyrazy ciągu. Jeśli wyraz ciągu 1 jest mniejszy to wrzucasz go do ciagu wynikowego. Jeśli wyraz ciągu 2 jest mniejszy to wrzucasz go do ciagu wynikowego. Jeśli są równe to jedne wyrzucasz. Dodatkowo zawsze sprawdzasz czy element który chcesz dodać do ciągu wynikowego nie jest ostatnim elementem tego ciągu (jeśli jest to wyrzucasz) co załatwia przypadek:
33 11

0

no ale jeszcze trzeba uwzględnić że np w pierwszym ciągu powtarza się jakaś liczba. Do tego problem mam z pętlą gdy te ciągi byłyby różnej długości. I jeszcze jeśli są równe to jeden wyrzucam ok, ale jak będą 3 lub więcej takich samych liczb?

0

jak jeden ciag sie skonczy to po prostu przepisujesz reszte z drugiego do wynikowego (usuwajac duplikaty). za kazdym razem mozesz sprawdzac czy liczba ktorą chcesz dodac do ciagu wynikowego nie jest ostatnią liczbą tego ciagu, jak jest to jej nie dodajesz ponownie

0

Algorytm wygląda dokładnie tak jak opisałem, przewiduje wszystkie mozliwosci. Jak jeden ciąg się skończy to robisz to samo, ale nie wykonujesz porównania początków ciągów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1