algorytm.org

Implementacja w JavaScript

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Sortowanie szybkie (quicksort) - Implementacja w JavaScript
Ocena użytkownikóww: *****  / 4
SłabyŚwietny
Nadesłany przez Mariusz Gumienny, 10 kwietnia 2015 11:38
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

quicksort_js.html:
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Quicksort</title>
</head>
<body>
<!-- QUICKSORT opracował: Mariusz Gumienny -->
<!-- www.algorytm.org -->
<script>
window.onload = function() {
  
  var przykladowa_tablica = [];
  
  // zapelnianie tablicy setką losowych liczb calkowitych z przedzialu 0 - 99
  for (var m=0; m<100; m++) {
    przykladowa_tablica[m] = Math.floor(Math.random() * 100);
  }
  
  // wypisanie tablicy nieposortowanej
  document.write('Przed sortowaniem:<br>');
  for(var n=0, dlugosc = przykladowa_tablica.length; n<dlugosc; n++) {
    document.write(przykladowa_tablica[n] + ' ');
  }
  
  // algorytm
  function quicksort(d, lewy, prawy) {
    var i, j, x;
    i = j = lewy;
    
    while(i < prawy) {
      if (d[i] <= d[prawy]) { // pivotem jest element o indeksie [prawy]
        x = d[j];
        d[j] = d[i];
        d[i] = x;
         j++;
      }
      i++;
    }
    
    x = d[j];
    d[j] = d[prawy];
    d[prawy] = x;
    
    if(lewy < j - 1) quicksort(d, lewy, j - 1);
    if(j+1 < prawy) quicksort(d, j+1, prawy);
  } // koniec algorytmu
  
  // sortowanie
  quicksort(przykladowa_tablica, 0, 99);
  
  // wypisanie tablicy posortowanej
  document.write('<br><br>Po sortowaniu:<br>');
  for(var r=0, dlugosc = przykladowa_tablica.length; r<dlugosc; r++) {
    document.write(przykladowa_tablica[r] + ' ');
  }
};
</script>
</body>
</html>
Dodaj komentarz