1. Mamy następujące deklaracje struktur:

struct { char c; long l; short s; int i;} st1;
struct { long l; short s; char c;} st2;

ile zajmują one miejsca zakładając 2-bajtowe short i 4-bajtowe int i long. Ile jeśli długość short, int i long wynoszą odpowiednio 2, 4 i 8 lub 2, 8, 8 bajtów. Podać wynik (porównać!) zarówno w przypadku rozmieszczenia upakowanego, jak i wyrównywania.

2. Porównać wynik poprzedniego ćwiczenia z tym co robi nasz kompilator. Napisać własną deklarację i sprawdzić rozmiar struktury. Co się dzieje z float, double i wskaźnikami?

3. Zapisać w prostszej postaci: O(2n^{5}−3n^{2}+17), O(\frac{7n^{4}+5n^{2}−48}{n^{2}+24}), O(n^{2} log(3n^{5}+ 21 ∗ n^{2} + 6)).

4. Zapisać w notacji asymptotycznej (O) ilości operacji w problemach z zadań 1, 2, 3 z listy 1.

5. Podać w notacji asymptotycznej jaką złożoność ma: wyliczanie wartośći wielomianu stopnia n w punkcie, wyliczanie wartości wielomianu stopnia n w n punktach (stosować najprostszy algorytm), sortowanie metodą łączenia, generowanie permutacji n elementów.

6. Zaprogramować jako procedurę podane na wykładzie algorytmy wyszukiwania podciągu o maksymalnej sumie. Napisać program główny który wyprodukuje ciąg losowy o zadanej długości. Zmierzyć zalożność czasu wykonania programu od długości ciągu – najpierw użyć polecenia time, a później programu gprof. Co zrobić żeby w mierę dokładnie oszacować czas wykonania naszej procedury?