Zadanie 1
Pokaż, że procedura ZBIÓR-ODCINKÓW-SIĘ-PRZECINA działa poprawnie nawet wtedy gdy trzy lub więcej odcinków przecina się w tym samym punkcie.
Rozwiązanie
Rozumowanie w takim przypadku jest analogiczne do rozumowania przeprowadzonego na wykładzie. Niech będzie punktem przecięcia najbardziej na lewo oraz niech będzie to punkt przecięcia odcinków. Zauważmy, że istnieje takie położenie miotły , że te odcinków będzie występowało kolejno w porządku . Zauważmy, że każda para tych punktów się przecina, a więc w momencie, w którym umieszczone one zostały na miotle w tej kolejności wykryte zostało ich przecięcie.
Zadanie 2
Pokaż, że procedura ZBIÓR-ODCINKÓW-SIĘ-PRZECINA działa poprawnie nawet wtedy gdy obecne są pionowe odcinki, a ich dolne końce traktujemy jako lewe końce, a górne końce jako prawe. Położenie odcinków w porządku na miotle wyznaczamy na podstawie współrzędnej dolnego końca.
Rozwiązanie
Zauważ, że przy takim traktowaniu końcy odcinków pionowych w trakcie działania procedury zostanie sprawdzone, czy odcinek przecina się z z najniższym odcinkiem leżącym ponad dolnym końcem. Taki test wystarczy do sprawdzenia czy odcinek pionowy przecina się z jakimkolwiek innym odcinkiem. Zostanie tez sprawdzone, czy odcinek przecina się z najwyższym odcinkiem leżącym poniżej dolnego końca, a to wystarczy do przetestowania przecinania się odcinków pionowych między sobą.
Zadanie 3
Masz dane dwa zbiory punktów oraz . Zakładamy, że w sumie tych zbiorów nie ma trzech współliniowych punktów. Pokaż, że można dobrać w pary punkty do punktów w tak aby utworzone w ten sposób odcinki się nie przecinały. Zaproponuj algorytm wyznaczający takie parowanie.
Rozwiązanie
Pokażemy teraz że istnieje taka para , że po obydwu stronach prostej występuje tyle samo punktów ze zbioru co ze zbioru . Wybierzmy dowolny punkt i posortujmy pozostałe punkty z po współrzędnych polarnych względem tego punktu. Oznaczmy ten posortowany ciąg przez . Oznaczmy przez różnicę między liczbą punktów z występujących po jednej ze stron prostej oraz liczbą punktów z występujących po tej samej stronie prostek . Zauważmy, że , ponieważ przy zmianie prostej co najwyżej jeden punkt zmienia stronę. Zauważmy, że z tej dyskretnej równości wynika, że dla pewnego musi zachodzić . Takie możemy znaleźć w czasie . Mając taką prostą możemy rozbić problem na dwa mniejsze problemy. Ponieważ zagłębień tek rekursji będzie co najwyżej , to algorytm wyznaczania parowania punktów z do punktów z działać będzie w czasie .