jak wykonac sortowanie przez wstawianie algorytm inserion sort, PHP Skrypty


[PHP] Jak wykonać sortowanie przez wstawianie (algorym Insertion Sort)?

0x01 graphic

Chcesz wykorzystać do sortowania algorytm InsertionSort, czyli sortowanie przez wstawianie elementu.

0x01 graphic

To bardzo prosty algorytm, który nadaje się do sortowania niewielkich tablic. Polega na pobieraniu kolejnych elementów z części tablicy nieuporządkowanej i wstawianiu ich (stąd nazwa) do części tablicy już uporządkowanej.

Dwa skrypty to różne zapisy tego samego algorytmu:

<?

$t = array(7, 9, 1, 2, 6, 7, 3);

$n = count($t); // liczba elementów tablicy

for ($i=1; $i<$n;$i++) {

for ($j=$i;$j>0 && $t[$j]<$t[$j-1];$j--) {

if ($t[$j-1]>$t[$j]) list($t[$j-1],$t[$j]) = array($t[$j],$t[$j-1]);

}

}

for($i=0;$i<$n;$i++) echo $t[$i],", ";

// wynik: 1, 2, 3, 6, 7, 7, 9,

?>

Wymiana elementów tablicy została wykonana przy pomocy triku z list() i array(), bez potrzeby korzystania ze zmiennej tymczasowej.

A to wersja z pętlą while:

<?

$t = array(7, 9, 1, 2, 6, 7, 3);

$n = count($t); // liczba elementów tablicy

for ($i=1; $i<$n;$i++) {

$element=$t[$i];

$j=$i;

while($j>0 && $t[$j-1]>$element) {

$t[$j]=$t[$j-1];

$j--;

}

$t[$j]=$element;

}

for($i=0;$i<$n;$i++) echo $t[$i],", ";

// wynik: 1, 2, 3, 6, 7, 7, 9,

?>

Algorytm sprawdza się w tablicach, które są prawie posortowane, a więc gdzie niewiele elementów trzeba sortować.



Wyszukiwarka

Podobne podstrony:
jak wykonac sortowanie przez zamiane wymiane wybor algorytm selection sort, PHP Skrypty
jak wykonac sortowanie babelkowealgorytm bubble sort, PHP Skrypty
sortowanie przez wstawianie2
Sortowanie Przez Wstawianie
30 Sortowanie przez wstawianie Nieznany (2)
sortowanie przez wstawianie1
Jak wysłać ze strony WWW e-mail z dowolnym załącznikiem, PHP Skrypty
Jak stworzyć prostą wyszukiwarkę dla własnych stron WWW, PHP Skrypty
Jak pobrać zawartość strony WWW korzystając z biblioteki CURL, PHP Skrypty
jak przeslac dane z pol tekstowych do innych stron, PHP Skrypty
Jak pobrać i zapisać na dysk wskazane strony WWW, PHP Skrypty
Jak wypisać wszystkie anagramy podanego wyrazu (permutacja ciągu, PHP Skrypty
Jak zmienić tło strony w zależności od aktualnej godziny, PHP Skrypty
Jak zablokować powtórne przetwarzanie formularzy przy odświeżaniu strony, PHP Skrypty
Jak sprawdzić czy domena istnieje i do kogo należy, PHP Skrypty
jak uzywajac szyfru cezara zakodowac lub odkodowac wiadomosc, PHP Skrypty
Jak szybko przenieść zawartość pliku tekstowego do tabeli, PHP Skrypty
Jak wybrać losowy rekord (lub losowe rekordy) z tabeli, PHP Skrypty

więcej podobnych podstron