graphlogo

Wydział Matematyki i Informatyki

Uniwersytetu Mikołaja Kopernika w Toruniu

1inf 2023/2024 Programowanie I - lab C

[K1] Sortowanie
Języki: c
Limit czasu: 10.0 s
Limit pamięci: 10 MB

Rozważmy następujący nieuporządkowany ciąg liczb:

3 77 11 98 73 74 2 32 83 48 30 0 60 4 19 9 57 22 53 59 
oraz cztery możliwe sposoby jego uporządkowania.
  1. Rosnąco:
    0 2 3 4 9 11 19 22 30 32 48 53 57 59 60 73 74 77 83 98 
  2. Malejąco:
    98 83 77 74 73 60 59 57 53 48 32 30 22 19 11 9 4 3 2 0 
  3. Najpierw liczby parzyste rosnąco, następnie liczby nieparzyste malejąco:
    0 2 4 22 30 32 48 60 74 98 83 77 73 59 57 53 19 11 9 3
  4. Najpierw liczby nieparzyste rosnąco, następnie liczby parzyste malejąco:
    3 9 11 19 53 57 59 73 77 83 98 74 60 48 32 30 22 4 2 0 

Napisz program, który wczyta ze standardowego wejścia ciąg liczb ustalonej długości, a następnie posortuje go w wymaganym porządku.

Wejście

Pierwszy wiersz wejścia zawiera liczbę naturalną 0<N<100000. Drugi wiersz wejścia zawiera ciąg N liczb naturalnych rozdzielonych pojedynczymi spacjami. Trzeci wiersz wejścia zawiera liczbę 0<P<5 określającą porządek sortowania.

Wyjście

Na wyjściu program powinien wydrukować wczytany ciąg liczb (rozdzielonych pojedynczymi spacjami) posortowany według porządku określonego za pomocą P.

Przykładowe wejście:
20
3 77 11 98 73 74 2 32 83 48 30 0 60 4 19 9 57 22 53 59 
3
Przykładowe wyjście:
0 2 4 22 30 32 48 60 74 98 83 77 73 59 57 53 19 11 9 3

Uwaga: Przedstawione rozwiązanie powinno wykorzystywać jedną funkcję sortującą. Porządek sortowania powinien być ustalany za pomocą parametru będącego wskaźnikiem do funkcji porównującej pojedyncze elementy.

Powrót
© 2009-2020 • ZawodyWeb Team
IKS - Inwestycja w Kierunki Strategiczne na Wydziale Matematyki i Informatyki UMK

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego