{"id":"informator-maturalny-informatyka-2015/zad/15","paper_id":"informator-maturalny-informatyka-2015","number":"15","points":null,"ptype":"open","subject":"informatyka","category":"informator-maturalny","year":2015,"month":null,"level":null,"text":"Zadanie 15. Sortowanie (0-6)\nW tym zadaniu rozważamy algorytmy sortujące niemalejąco n-elementową tablicę liczb\ncałkowitych a[1 n], gdzie n jest dodatnią liczbą całkowitą. Algorytm sortowania nazywamy\nlokalnym, gdy podczas sortowania można porównywać i zamieniać ze sobą tylko sąsiednie\nelementy tablicy. Na przykład dopuszczalne jest porównanie i zamiana elementów a[5] i a[6],\nnatomiast nie można bezpośrednio porównywać i zamieniać ze sobą elementów a[5] i a[7].\na) Które z następujących algorytmów sortowania są algorytmami lokalnymi: bąbelkowy,\nprzez wstawianie liniowe, szybki? Udziel odpowiedzi wpisując słowa TAK lub NIE\nw prawej kolumnie tabeli poniżej.\nAlgorytm\nCzy jest lokalny?\nBąbelkowy\nPrzez wstawianie liniowe\nSzybki\nb) Dla tablicy a[1 4] = [3,2,4,1] algorytm sortowania przez wstawianie liniowe wykona\ndokładnie 4 zamiany sąsiednich elementów: (3 z 2), (4 z 1), (3 z 1), (2 z 1). Uzupełnij luki\nw podanych poniżej tablicach różnymi liczbami całkowitymi tak, aby algorytm\nsortowania przez wstawianie liniowe wykonał na każdej z nich dokładnie 11 zamian\nsąsiednich elementów.\nTablica 1.\nPozycja\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\nZawartość\n10\n1\n2\n4\n5\n6\n7\n8\nTablica 2.\nPozycja\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\nZawartość\n1\n2\n3\n5\n4\nc) Załóżmy teraz, że w jednym kroku możemy posortować blok kolejnych elementów\ntablicy dłuższy niż 2. Na przykład gdybyśmy mogli sortować bloki o długościach\ndo 9 elementów, wówczas tablicę 10-elementową można by posortować w trzech\nkrokach: najpierw w jednym kroku sortujemy ostatnie 9 elementów. W następnym kroku\nsortujemy pierwsze 9 elementów. Teraz wiemy, że element najmniejszy jest już na swojej,\nczyli pierwszej, pozycji w tablicy. Jeszcze jedno sortowanie ostatnich 9 elementów\nkończy sortowanie całego ciągu. Oznaczmy przez Sort(i,j) sortowanie w jednym kroku\nbloku kolejnych elementów z pozycji od i do j. Wówczas powyższe sortowanie można\nzapisać w następujący sposób:\n(1) Sort(2,10);\n(2) Sort(1,9);\n(3) Sort(2,10);\n32 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nPrzykład:\nPoczątkowa zawartość tablicy:\na = [10, 2, 8, 4, 6, 5, 7, 9, 3, 1]\nSortowanie ostatnich 9 elementów (Sort(2,10)):\na = [10, 1, 2, 3, 4, 5, 6, 7, 8, 9]\nSortowanie pierwszych 9 elementów (Sort(1,9)):\na = [1, 2, 3, 4, 5, 6, 7, 8, 10, 9]\nSortowanie ostatnich 9 elementów (Sort(2,10)):\na = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].\nZapisz algorytm sortowania tablicy 1000-elementowej w co najwyżej 6 krokach, przy\nzałożeniu, że w jednym kroku można posortować blok złożony z co najwyżej 500 elementów.\nKolejne kroki algorytmu:\n1.\n2.\n3.\n4.\n5.\n6.\nWymagania ogólne\nIII. Rozwiązywanie problemów i podejmowanie\ndecyzji z wykorzystaniem komputera, z zastosowaniem\npodejścia algorytmicznego.\nWymagania szczegółowe\n5. Rozwiązywanie problemów i podejmowanie decyzji\nz wykorzystaniem komputera, stosowanie podejścia\nalgorytmicznego.\nZdający:\n2) stosuje podejście algorytmiczne do rozwiązywania\nproblemu,\n5) posługuje się podstawowymi technikami\nalgorytmicznymi,\n11) opisuje podstawowe algorytmy,\n16) opisuje własności algorytmów na podstawie ich\nanalizy.\nPrzykładowe zadania z rozwiązaniami 33\nSchemat punktowania\nPodpunkt\nCzynność\nLiczba\npunktów\nza\npodpunkt\nLiczba\npunktów\nza\nzadanie\na\nZa poprawne uzupełnienie wszystkich wierszy tabeli\n- 1 punkt.\n1\n6\nb\nZa poprawne uzupełnienie pierwszej tabeli (pozycja 4\n- 3, pozycja 8 - 9) - 1 punkt.\nZa poprawne uzupełnienie drugiej tabeli (10,9,8,7,6)\n- 1 punkt.\n2\nc\nZa poprawny algorytm - 3 punkty.\nW przypadku błędnego algorytmu:\nustawienie minimum na pierwszej pozycji - 1 punkt.\nustawienie maksimum na ostatniej pozycji - 1 punkt.\n3\nZadanie 15. Sortowanie (0-6) - rozwiązanie\nW tym zadaniu rozważamy algorytmy sortujące niemalejąco n-elementową tablicę liczb\ncałkowitych a[1 n], gdzie n jest dodatnią liczbą całkowitą. Algorytm sortowania nazywamy\nlokalnym, gdy podczas sortowania można porównywać i zamieniać ze sobą tylko sąsiednie\nelementy tablicy.\nNa przykład dopuszczalne jest porównanie i zamiana elementów a[5] i a[6], natomiast nie\nmożna bezpośrednio porównywać i zamieniać ze sobą elementów a[5] i a[7].\na) Które z następujących algorytmów sortowania są algorytmami lokalnymi: bąbelkowy,\nprzez wstawianie liniowe, szybki? Udziel odpowiedzi wpisując słowa TAK lub NIE\nw prawej kolumnie tabeli poniżej:\nAlgorytm\nCzy jest lokalny?\nBąbelkowy\nTAK\nPrzez wstawianie liniowe\nTAK\nSzybki\nNIE\nb) Dla tablicy a[1 4] = [3,2,4,1] algorytm sortowania przez wstawianie liniowe wykona\ndokładnie 4 zamiany sąsiednich elementów. Uzupełnij luki w podanych poniżej tablicach\nróżnymi liczbami całkowitymi tak, aby algorytm sortowania przez wstawianie liniowe\nwykonał na każdej z nich dokładnie 11 zamian sąsiednich elementów.\nTablica 1.\nPozycja\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\nZawartość\n10\n1\n2\n3\n4\n5\n6\n9\n7\n8\nTablica 2.\nPozycja\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\nZawartość\n1\n2\n3\n5\n4\n10\n9\n8\n7\n6\nc) Załóżmy teraz, że w jednym kroku możemy posortować blok kolejnych elementów\ntablicy dłuższy niż 2. Na przykład, gdybyśmy mogli sortować bloki o długościach do\n9 elementów, wówczas tablicę 10-elementową można by posortować w trzech krokach:\n34 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015\nnajpierw w jednym kroku sortujemy ostatnie 9 elementów. W następnym kroku\nsortujemy pierwsze 9 elementów. Teraz wiemy, że element najmniejszy jest już na\nswojej, czyli pierwszej pozycji w tablicy. Jeszcze jedno sortowanie ostatnich\n9 elementów kończy sortowanie całego ciągu. Oznaczmy przez Sort(i,j) sortowanie\nw jednym kroku bloku kolejnych elementów z pozycji od i do j. Wówczas powyższe\nsortowanie można zapisać w następujący sposób:\n(4) Sort(2,10);\n(5) Sort(1,9);\n(6) Sort(2,10);\nPrzykład:\nPoczątkowa zawartość tablicy:\na = [10, 2, 8, 4, 6, 5, 7, 9, 3, 1]\nSortowanie ostatnich 9 elementów (Sort(2,10)):\na = [10, 1, 2, 3, 4, 5, 6, 7, 8, 9]\nSortowanie pierwszych 9 elementów (Sort(1,9)):\na = [1, 2, 3, 4, 5, 6, 7, 8, 10, 9]\nSortowanie ostatnich 9 elementów (Sort(2,10)):\na = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].\nZapisz algorytm sortowania tablicy 1000-elementowej w co najwyżej 6 krokach, przy\nzałożeniu, że w jednym kroku można posortować blok złożony z co najwyżej 500\nelementów.\nKolejne kroki algorytmu:\n1.\nSort(1,500)\n2.\nSort(251,750)\n3.\nSort(501,1000)\n4.\nSort(1,500)\n5.\nSort(251,750)\n6.\nSort(1,500)\nKomentarz\nTo zadanie sprawdza rozumienie zasad działania podstawowych algorytmów sortowania.\nWszystkie trzy algorytmy wymienione w punkcie a), to algorytmy sortujące polegające na\nporównywaniu wartości elementów znajdujących się na różnych pozycjach w tablicy\na i zamianie ich miejscami, jeśli element o większej wartości poprzedza w tablicy element\no mniejszej wartości. W algorytmach sortowania, bąbelkowym i przez wstawianie liniowe,\nporównywane i zamieniane są tylko pary sąsiednich elementów w tablicy. Tak nie jest\nw algorytmie szybkim, ponieważ w przeciwnym razie stracilibyśmy walor „szybkości”.\nŻeby rozwiązać punkt b) zastanówmy się, ile zamian wykonamy sortując algorytmem przez\nwstawianie tablicę a[1 n] o zadanej zawartości. Oznaczmy przez b[i] liczbę elementów\nw tablicy a znajdujących się na pozycjach o indeksach mniejszych od i, ale o wartościach\nwiększych od wartości elementu a[i]. Nietrudno zauważyć, że podczas wstawiania elementu\na[i] do uporządkowanego już fragmentu tablicy a[1 i-1], zostanie on zamieniony ze\nwszystkimi elementami o wartościach większych, a jest ich dokładnie b[i]. Zatem łączna\nliczba zamian wykonywanych w algorytmie sortowania przez wstawianie tablicy a wyniesie\nb[1]+b[2]+ … +b[n]. Poniżej pokazujemy zawartość tablicy b dla przykładów z punktu b).\nPrzykładowe zadania z rozwiązaniami 35\nTablica 1.\npozycja\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\nZawartość\n10\n1\n2\n3\n4\n5\n6\n9\n7\n8\ntablica b\n0\n1\n1\n1\n1\n1\n1\n1\n2\n2\nTablica 2.\npozycja\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\nzawartość\n1\n2\n3\n5\n4\n10\n9\n8\n7\n6\ntablica b\n0\n0\n0\n0\n1\n0\n1\n2\n3\n4\nDo rozwiązania punktu c) możemy zaadoptować algorytm sortowania bąbelkowego. Gdyby\ntablica a liczyła tylko cztery elementy, to do jej posortowania wystarczy (i potrzeba) 6\nwywołań procedury Sort:\nSort(1,2), Sort(2,3), Sort(3,4), Sort(1,2), Sort(2,3), Sort(1,2).\nPo trzech pierwszych wywołaniach Sort element o największej wartości znajdzie się już na\nswojej docelowej pozycji nr 4. Dwa następne wywołania zagwarantują, że na pozycji nr 3\nw a znajdzie się element drugi, licząc od największego. Ostatnie wywołanie Sort porządkuje\ndwa najmniejsze elementy i ustawia je na właściwych, dwóch pierwszych pozycjach w tablicy\na. Podobnie dzieje się w zaproponowanym rozwiązaniu sortowania tablicy 1000\nelementowej. Pierwsze trzy wywołania Sort gwarantują umieszczenie 250 największych\nelementów na ich docelowych pozycjach. Kolejne dwa wywołania Sort umieszczają\nw dobrym porządku, na docelowych pozycjach od 501 do 750, kolejne 250 elementów.\nOstatnie sortowanie porządkuje pierwszych 500 najmniejszych elementów. Alternatywne\nrozwiązanie mogłoby polegać na zaadaptowaniu sortowania przez wstawianie, kiedy to\nwstawiamy bloki po 250 elementów:\nSort(1,500), Sort(251,750), Sort(1,500), Sort(501,1000), Sort(251,750), Sort(1,500).\n36 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015","answer":null,"answer_text":null,"solution":null,"image":"img/informator-maturalny-informatyka-2015/zad-15.webp","solution_image":null,"topics":null,"page_from":31,"source":"ocr","answer_source":null,"answer_text_source":null,"solution_source":null,"text_source":"ocr","source_label":"Informatyka · Informator maturalny · 2015","subject_label":"Informatyka","category_label":"Informator maturalny","text_html":"<p>Zadanie 15. Sortowanie (0-6)<br>W tym zadaniu rozważamy algorytmy sortujące niemalejąco n-elementową tablicę liczb<br>całkowitych a[1 n], gdzie n jest dodatnią liczbą całkowitą. Algorytm sortowania nazywamy<br>lokalnym, gdy podczas sortowania można porównywać i zamieniać ze sobą tylko sąsiednie<br>elementy tablicy. Na przykład dopuszczalne jest porównanie i zamiana elementów a[5] i a[6],<br>natomiast nie można bezpośrednio porównywać i zamieniać ze sobą elementów a[5] i a[7].<br>a) Które z następujących algorytmów sortowania są algorytmami lokalnymi: bąbelkowy,<br>przez wstawianie liniowe, szybki? Udziel odpowiedzi wpisując słowa TAK lub NIE<br>w prawej kolumnie tabeli poniżej.<br>Algorytm<br>Czy jest lokalny?<br>Bąbelkowy<br>Przez wstawianie liniowe<br>Szybki<br>b) Dla tablicy a[1 4] = [3,2,4,1] algorytm sortowania przez wstawianie liniowe wykona<br>dokładnie 4 zamiany sąsiednich elementów: (3 z 2), (4 z 1), (3 z 1), (2 z 1). Uzupełnij luki<br>w podanych poniżej tablicach różnymi liczbami całkowitymi tak, aby algorytm<br>sortowania przez wstawianie liniowe wykonał na każdej z nich dokładnie 11 zamian<br>sąsiednich elementów.<br>Tablica 1.<br>Pozycja<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>Zawartość<br>10<br>1<br>2<br>4<br>5<br>6<br>7<br>8<br>Tablica 2.<br>Pozycja<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>Zawartość<br>1<br>2<br>3<br>5<br>4<br>c) Załóżmy teraz, że w jednym kroku możemy posortować blok kolejnych elementów<br>tablicy dłuższy niż 2. Na przykład gdybyśmy mogli sortować bloki o długościach<br>do 9 elementów, wówczas tablicę 10-elementową można by posortować w trzech<br>krokach: najpierw w jednym kroku sortujemy ostatnie 9 elementów. W następnym kroku<br>sortujemy pierwsze 9 elementów. Teraz wiemy, że element najmniejszy jest już na swojej,<br>czyli pierwszej, pozycji w tablicy. Jeszcze jedno sortowanie ostatnich 9 elementów<br>kończy sortowanie całego ciągu. Oznaczmy przez Sort(i,j) sortowanie w jednym kroku<br>bloku kolejnych elementów z pozycji od i do j. Wówczas powyższe sortowanie można<br>zapisać w następujący sposób:<br>(1) Sort(2,10);<br>(2) Sort(1,9);<br>(3) Sort(2,10);<br>32 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015<br>Przykład:<br>Początkowa zawartość tablicy:<br>a = [10, 2, 8, 4, 6, 5, 7, 9, 3, 1]<br>Sortowanie ostatnich 9 elementów (Sort(2,10)):<br>a = [10, 1, 2, 3, 4, 5, 6, 7, 8, 9]<br>Sortowanie pierwszych 9 elementów (Sort(1,9)):<br>a = [1, 2, 3, 4, 5, 6, 7, 8, 10, 9]<br>Sortowanie ostatnich 9 elementów (Sort(2,10)):<br>a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].<br>Zapisz algorytm sortowania tablicy 1000-elementowej w co najwyżej 6 krokach, przy<br>założeniu, że w jednym kroku można posortować blok złożony z co najwyżej 500 elementów.<br>Kolejne kroki algorytmu:<br>1.<br>2.<br>3.<br>4.<br>5.<br>6.<br>Wymagania ogólne<br>III. Rozwiązywanie problemów i podejmowanie<br>decyzji z wykorzystaniem komputera, z zastosowaniem<br>podejścia algorytmicznego.<br>Wymagania szczegółowe</p>\n<ol><li>Rozwiązywanie problemów i podejmowanie decyzji</li></ol>\n<p>z wykorzystaniem komputera, stosowanie podejścia<br>algorytmicznego.<br>Zdający:</p>\n<ol><li>stosuje podejście algorytmiczne do rozwiązywania</li></ol>\n<p>problemu,</p>\n<ol><li>posługuje się podstawowymi technikami</li></ol>\n<p>algorytmicznymi,</p>\n<ol><li>opisuje podstawowe algorytmy,</li><li>opisuje własności algorytmów na podstawie ich</li></ol>\n<p>analizy.<br>Przykładowe zadania z rozwiązaniami 33<br>Schemat punktowania<br>Podpunkt<br>Czynność<br>Liczba<br>punktów<br>za<br>podpunkt<br>Liczba<br>punktów<br>za<br>zadanie<br>a<br>Za poprawne uzupełnienie wszystkich wierszy tabeli</p>\n<ul><li>1 punkt.</li></ul>\n<p>1<br>6<br>b<br>Za poprawne uzupełnienie pierwszej tabeli (pozycja 4</p>\n<ul><li>3, pozycja 8 - 9) - 1 punkt.</li></ul>\n<p>Za poprawne uzupełnienie drugiej tabeli (10,9,8,7,6)</p>\n<ul><li>1 punkt.</li></ul>\n<p>2<br>c<br>Za poprawny algorytm - 3 punkty.<br>W przypadku błędnego algorytmu:<br>ustawienie minimum na pierwszej pozycji - 1 punkt.<br>ustawienie maksimum na ostatniej pozycji - 1 punkt.<br>3<br>Zadanie 15. Sortowanie (0-6) - rozwiązanie<br>W tym zadaniu rozważamy algorytmy sortujące niemalejąco n-elementową tablicę liczb<br>całkowitych a[1 n], gdzie n jest dodatnią liczbą całkowitą. Algorytm sortowania nazywamy<br>lokalnym, gdy podczas sortowania można porównywać i zamieniać ze sobą tylko sąsiednie<br>elementy tablicy.<br>Na przykład dopuszczalne jest porównanie i zamiana elementów a[5] i a[6], natomiast nie<br>można bezpośrednio porównywać i zamieniać ze sobą elementów a[5] i a[7].<br>a) Które z następujących algorytmów sortowania są algorytmami lokalnymi: bąbelkowy,<br>przez wstawianie liniowe, szybki? Udziel odpowiedzi wpisując słowa TAK lub NIE<br>w prawej kolumnie tabeli poniżej:<br>Algorytm<br>Czy jest lokalny?<br>Bąbelkowy<br>TAK<br>Przez wstawianie liniowe<br>TAK<br>Szybki<br>NIE<br>b) Dla tablicy a[1 4] = [3,2,4,1] algorytm sortowania przez wstawianie liniowe wykona<br>dokładnie 4 zamiany sąsiednich elementów. Uzupełnij luki w podanych poniżej tablicach<br>różnymi liczbami całkowitymi tak, aby algorytm sortowania przez wstawianie liniowe<br>wykonał na każdej z nich dokładnie 11 zamian sąsiednich elementów.<br>Tablica 1.<br>Pozycja<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>Zawartość<br>10<br>1<br>2<br>3<br>4<br>5<br>6<br>9<br>7<br>8<br>Tablica 2.<br>Pozycja<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>Zawartość<br>1<br>2<br>3<br>5<br>4<br>10<br>9<br>8<br>7<br>6<br>c) Załóżmy teraz, że w jednym kroku możemy posortować blok kolejnych elementów<br>tablicy dłuższy niż 2. Na przykład, gdybyśmy mogli sortować bloki o długościach do<br>9 elementów, wówczas tablicę 10-elementową można by posortować w trzech krokach:<br>34 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015<br>najpierw w jednym kroku sortujemy ostatnie 9 elementów. W następnym kroku<br>sortujemy pierwsze 9 elementów. Teraz wiemy, że element najmniejszy jest już na<br>swojej, czyli pierwszej pozycji w tablicy. Jeszcze jedno sortowanie ostatnich<br>9 elementów kończy sortowanie całego ciągu. Oznaczmy przez Sort(i,j) sortowanie<br>w jednym kroku bloku kolejnych elementów z pozycji od i do j. Wówczas powyższe<br>sortowanie można zapisać w następujący sposób:<br>(4) Sort(2,10);<br>(5) Sort(1,9);<br>(6) Sort(2,10);<br>Przykład:<br>Początkowa zawartość tablicy:<br>a = [10, 2, 8, 4, 6, 5, 7, 9, 3, 1]<br>Sortowanie ostatnich 9 elementów (Sort(2,10)):<br>a = [10, 1, 2, 3, 4, 5, 6, 7, 8, 9]<br>Sortowanie pierwszych 9 elementów (Sort(1,9)):<br>a = [1, 2, 3, 4, 5, 6, 7, 8, 10, 9]<br>Sortowanie ostatnich 9 elementów (Sort(2,10)):<br>a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].<br>Zapisz algorytm sortowania tablicy 1000-elementowej w co najwyżej 6 krokach, przy<br>założeniu, że w jednym kroku można posortować blok złożony z co najwyżej 500<br>elementów.<br>Kolejne kroki algorytmu:<br>1.<br>Sort(1,500)<br>2.<br>Sort(251,750)<br>3.<br>Sort(501,1000)<br>4.<br>Sort(1,500)<br>5.<br>Sort(251,750)<br>6.<br>Sort(1,500)<br>Komentarz<br>To zadanie sprawdza rozumienie zasad działania podstawowych algorytmów sortowania.<br>Wszystkie trzy algorytmy wymienione w punkcie a), to algorytmy sortujące polegające na<br>porównywaniu wartości elementów znajdujących się na różnych pozycjach w tablicy<br>a i zamianie ich miejscami, jeśli element o większej wartości poprzedza w tablicy element<br>o mniejszej wartości. W algorytmach sortowania, bąbelkowym i przez wstawianie liniowe,<br>porównywane i zamieniane są tylko pary sąsiednich elementów w tablicy. Tak nie jest<br>w algorytmie szybkim, ponieważ w przeciwnym razie stracilibyśmy walor „szybkości”.<br>Żeby rozwiązać punkt b) zastanówmy się, ile zamian wykonamy sortując algorytmem przez<br>wstawianie tablicę a[1 n] o zadanej zawartości. Oznaczmy przez b[i] liczbę elementów<br>w tablicy a znajdujących się na pozycjach o indeksach mniejszych od i, ale o wartościach<br>większych od wartości elementu a[i]. Nietrudno zauważyć, że podczas wstawiania elementu<br>a[i] do uporządkowanego już fragmentu tablicy a[1 i-1], zostanie on zamieniony ze<br>wszystkimi elementami o wartościach większych, a jest ich dokładnie b[i]. Zatem łączna<br>liczba zamian wykonywanych w algorytmie sortowania przez wstawianie tablicy a wyniesie<br>b[1]+b[2]+ … +b[n]. Poniżej pokazujemy zawartość tablicy b dla przykładów z punktu b).<br>Przykładowe zadania z rozwiązaniami 35<br>Tablica 1.<br>pozycja<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>Zawartość<br>10<br>1<br>2<br>3<br>4<br>5<br>6<br>9<br>7<br>8<br>tablica b<br>0<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>2<br>2<br>Tablica 2.<br>pozycja<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>zawartość<br>1<br>2<br>3<br>5<br>4<br>10<br>9<br>8<br>7<br>6<br>tablica b<br>0<br>0<br>0<br>0<br>1<br>0<br>1<br>2<br>3<br>4<br>Do rozwiązania punktu c) możemy zaadoptować algorytm sortowania bąbelkowego. Gdyby<br>tablica a liczyła tylko cztery elementy, to do jej posortowania wystarczy (i potrzeba) 6<br>wywołań procedury Sort:<br>Sort(1,2), Sort(2,3), Sort(3,4), Sort(1,2), Sort(2,3), Sort(1,2).<br>Po trzech pierwszych wywołaniach Sort element o największej wartości znajdzie się już na<br>swojej docelowej pozycji nr 4. Dwa następne wywołania zagwarantują, że na pozycji nr 3<br>w a znajdzie się element drugi, licząc od największego. Ostatnie wywołanie Sort porządkuje<br>dwa najmniejsze elementy i ustawia je na właściwych, dwóch pierwszych pozycjach w tablicy<br>a. Podobnie dzieje się w zaproponowanym rozwiązaniu sortowania tablicy 1000<br>elementowej. Pierwsze trzy wywołania Sort gwarantują umieszczenie 250 największych<br>elementów na ich docelowych pozycjach. Kolejne dwa wywołania Sort umieszczają<br>w dobrym porządku, na docelowych pozycjach od 501 do 750, kolejne 250 elementów.<br>Ostatnie sortowanie porządkuje pierwszych 500 najmniejszych elementów. Alternatywne<br>rozwiązanie mogłoby polegać na zaadaptowaniu sortowania przez wstawianie, kiedy to<br>wstawiamy bloki po 250 elementów:<br>Sort(1,500), Sort(251,750), Sort(1,500), Sort(501,1000), Sort(251,750), Sort(1,500).<br>36 Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015</p>","solutions":[]}