29 Sortowanie przez wybór (selekcję)

background image

Sortowanie przez

wybór (selekcję)

Wykład:

implementacja w C++, animacja pokazująca

sortowanie przez wybór (selekcję), złożoność algorytmu

background image

SORTOWANIE PRZEZ

SELEKCJĘ (WYBIERANIE)

background image

ALGORYTM SORTOWANIA PRZEZ

SELEKCJĘ (WYBIERANIE)

Sortowanie to polega na iteracyjnym znajdowaniu

najmniejszego (w sortowaniu rosnącym) lub największego

(w sortowaniu malejącym) elementu i zamianie go z

pierwszym elementem w tablicy, po czym rozmiar tablicy

zmniejszamy o jeden.

Złożoność czasowa tego algorytmu: O (n )

2

background image

ALGORYTM SORTOWANIA PRZEZ

SELEKCJĘ (WYBIERANIE)

ALGORYTM:
a)

wyznaczyć najmniejszy element w tablicy [0..n],

b)

zamienić go miejscami z zerowym elementem tablicy,

c)

wyznaczyć najmniejszy element w tablicy [1..n],

d)

zamienić go miejscami z pierwszym elementem tablicy,

itd. aż do posortowania całej tablicy

background image

IMPLEMENTACJA W C++

void

sortowanie_przez_selekcje(int *tab, int n)

{

int min,bufor;

for

(int i=0; i<n-1; i++)

{

min=i;

//znajdowanie minimum

for

(int j=i+1; j<n; j++)

{

if (tab[j]<tab[min])

min=j;

}

//zamiana

bufor=tab[min];

tab[min]=tab[i];

tab[i]=bufor;

}

}

background image

PRZYKŁAD SORTOWANIA

PRZEZ SELEKCJĘ

Dana jest tablica, którą należy posortować rosnąco:

0 1 2 3 4 5

9 2 6 5 1 3

indeks

background image

PRZYKŁAD SORTOWANIA

PRZEZ SELEKCJĘ

ITERACJA 1 

MINIMUM = 1

musi znaleźć się w szufladce

oznaczonej numerem

0

(następuje zamiana):

0

1 2 3

4

5

indeks

9 2 6 5 1 3

background image

indeks

1 2 6 5 9 3

PRZYKŁAD SORTOWANIA

PRZEZ SELEKCJĘ

ITERACJA 1 

MINIMUM = 1

musi znaleźć się w szufladce

oznaczonej numerem

0

:

0

1 2 3 4 5

background image

PRZYKŁAD SORTOWANIA

PRZEZ SELEKCJĘ

ITERACJA 2 

MINIMUM = 2

musi znaleźć się w szufladce

oznaczonej numerem

1

(zdarzyło się, że już tam jest, więc

nie ma potrzeby zamiany):

0

1

2 3 4 5

indeks

1

2 6 5 9 3

background image

PRZYKŁAD SORTOWANIA

PRZEZ SELEKCJĘ

ITERACJA 3 

MINIMUM = 3

musi znaleźć się w szufladce

oznaczonej numerem

2

(następuje zamiana):

0

1

2

3 4

5

indeks

1

2

6 5 9 3

background image

PRZYKŁAD SORTOWANIA

PRZEZ SELEKCJĘ

ITERACJA 3 

MINIMUM = 3

musi znaleźć się w szufladce

oznaczonej numerem

2

:

0

1

2

3 4 5

indeks

1

2

3 5 9 6

background image

PRZYKŁAD SORTOWANIA

PRZEZ SELEKCJĘ

ITERACJA 4 

MINIMUM = 5

musi znaleźć się w szufladce

oznaczonej numerem

3

(zdarzyło się, że już tam jest, więc

nie ma potrzeby zamiany):

0

1

2

3

4 5

indeks

1

2

3

5 9 6

background image

PRZYKŁAD SORTOWANIA

PRZEZ SELEKCJĘ

ITERACJA 5 

MINIMUM = 6

musi znaleźć się w szufladce

oznaczonej numerem 4

(następuje zamiana):

0

1

2

3

4

5

indeks

1

2

3

5

9 6

background image

PRZYKŁAD SORTOWANIA

PRZEZ SELEKCJĘ

ITERACJA 5 

MINIMUM = 6

musi znaleźć się w szufladce

oznaczonej numerem 4:

0

1

2

3

4

5

indeks

1

2

3

5

6 9


Wyszukiwarka

Podobne podstrony:
Algorytm sortowania przez wybór w porządku rosnącym
jak wykonac sortowanie przez zamiane wymiane wybor algorytm selection sort, PHP Skrypty
sortowanie przez zliczanie
Heap Sort-sortowanie przez kopcowanie, Informatyka -all, INFORMATYKA-all
Sortowanie przez kopcowanie PHEAP
29 W rok przez Biblię Listy Piotra
MIKROEKONOMIA WYKŁAD 3 (29 10 2011) Wybór między czasem wolnym a konsumpcją
Sortowanie przez scalanie PMERG
sortowanie przez wstawianie2
29, zamiawiane przez chomików
jak wykonac sortowanie przez wstawianie algorytm inserion sort, PHP Skrypty
Sortowanie Przez Wstawianie
30 Sortowanie przez wstawianie Nieznany (2)
sortowanie przez wstawianie1
SORTOWANIE PRZEZ SCALANIE
29 Przekrój przez okno góra A3

więcej podobnych podstron