52 (299)

52 (299)



i sprawdzamy, czy bieżący element nie jest większy od następnego. Jeżeli tak, to zamieniamy je ze sobą. Przechodzenie przez tablicę wykonujemy tyle razy, aż w czasie pojedynczego przejścia nie musimy wykonać już żadnej zamiany. Oznacza to, że tablica jest już posortowana.

Zauważ, że tablica porządkuje się „od końca”. Przy każdym przebiegu tablicy przynajmniej jeden element dołącza do już uporządkowanej końcówki. Dlatego w każdym przebiegu musimy sprawdzać coraz krótszy fragment.

program cw4_03;

{ Program zapełnia tablice losowymi liczbami }

{ i porządkuje je niemalejaco.    }

{ Katalog r4_01 : 4_03.pas    }

var

Liczby : array [1..20] of Byte;

I, Pom : Byte;

Ilosc : Byte;

Zamiana : Boolean;

procedurę WypiszTablice;

{ Procedura wypisuje tablice Liczby. } var

I : Byte; begin

for I :- 1 to 20 do

Write (LiczbyCI], ' ');

Writeln;

end; {--------------WypiszTablice -}

begin

Randomize;

for I := 1 to 20 do

LiczbyCI] Random (20) + 1;

Writeln; Write ('Tablica:

WypiszTablice;

Ilosc 20; repeat

Zamiana False;

Ilosc    Ilosc - 1;

for I    1 to Ilosc do

if (LiczbyCI] > LiczbyCI+1]) then begin

Pom LiczbyCI]; LiczbyCI] := LiczbyCI+1]; LiczbyCI+1]:- Pom;

Zamiana True; end;

until not Zamiana;

Write ('Tablica posortowana: ');

WypiszTablice;

Readln; end.

Zmienna Ilosc określa nieuporządkowaną część tablicy (zauważ, że jest od niej o 1 mniejsza, ponieważ porównujemy zawsze dwa sąsiednie elementy i pod koniec interesuje nas indeks niższego). Zmienna Zamiana informuje nas, czy w danym przebiegu pętli odbyła się zamiana danych. Jeżeli chciałbyś zobaczyć, jak zmienia się zawartość tabeli w czasie pracy algorytmu, wstaw przed słowem until jeszcze jedno wywołanie procedury WypiszTablice.


Wyszukiwarka

Podobne podstrony:
35544 PA250905 elementów nie jest powszechnie znany lub łatwo dostgaiy (...). Termin istotny"
przedstawionego nie jest większym problemem nawet na kartce, to w rzeczywistości przy nieco większym
Obraz6 2 Zad. 1. Rzucamy dwiema kostkami do gry. Iloma sposobami można uzyskać sumę oczek, która ni
52 (74) Sprawdź czy linie są proste czy nie...
img031 5 mikroorganizmów (grupy estrowe, karboksylowe, hydroksylowe czy eterowe). Polimer nie jest b
str128 129 Stan graniczny użytkowalności. W stanie granicznym użytkowalności sprawdzamy czy ugięcie
IMGw12 jest zaspokojeniem określonej osobistej potrzeby czy dążenia, które nie jest postrzegane jako
DEMOTYWATORY RÓŻNE PACZKAP0 SZT FOTO (13) Linki sponsorowanePoznaj datę śmierci.Sprawdź kiedy umrze
Syfon3 « zdolność przopufttown nyf<nm 1 sprawdzamy ozy prędkość przepły-n nie Jest a byt niska. D
91 6.2. Testy nieparametryczneZadanie 6.2.2. W celu sprawdzenia czy kostka do gry jest symetryczna,
SPRAWDŹ CZY TWÓJ DOWÓD OSOBISTY JEST GOTOWY
58934 Obraz5 (14) Eksploatacja EksploatacjaTransportowanie maszyny g Sprawdzić, czy całkowita wysok
zad2 2.    Sprawdzić czy estymator wyznaczony w zadaniu 1 jest estymatorem nieobciążo
Sprawdźmy czy rzeczywiście Maksymalna praca jest wykonywana, gdy gaz rozpręża się przez nieskończeni
w zadaniu 4 ja podałem wartość nie w decybelach, ale trzeba było sprawdzić czy podana tam nie pasuje
Test wiedzy z UTKDział 1 - Budowa i obsługa komputera Pytanie 1 Który z elementów nie jest niezbędny

więcej podobnych podstron