Cześć,
muszę napisać algorytm do zadania (Dana jest tablica n liczb. Znajdź k-tą co do wielkości - bez sortowania) poniżej przedstawiam pseudokod i źródło.

Jeżeli ktoś z Was coś wie to bardzo proszę o pomoc.

Kod
MagicFivesSelect(A[1..n], k);
  if n<=10 then
     posortuj tablicę A
     return A[k]
  else
     podziel elementy z tablicy A na podciągi 5-elementowe: P1,...,Pn/5
     (jeśli n nie jest wielokrotnością 5, uzupełnij ostatni podciąg wartościami +∞)
     Niech M = { Pi[3] : 1 ≤ i ≤ n/5 } (zbiór median ciągów Pi);
     m5 ← MagicFivesSelect(M, ⌈|M|/2⌉);
     A< ← { A[i] : A[i] < m5 };
     A= ← { A[i] : A[i] = m5 };
     A> ← { A[i] : A[i] > m5 };
     if |A<| ≥ k
        return MagicFivesSelect(A<, k);
     else if |A<|+|A=| ≥ k
         return m5;
      else
             return MagicFivesSelect(A>, k-|A<|-|A=|);

1. Opis
2. Opis

Oraz to co udało mi się stworzyć:

  1. $n = !empty($_GET['n']) ? $_GET['n'] : 10;
  2.  
  3. $array = array();
  4.  
  5. for ($i=0; $i<$n; $i++) {
  6. $array[] = rand(1, 1000);
  7. }
  8.  
  9. $arrayHuman = print_r($array, true);
  10.  
  11. $k = !empty($_GET['k']) ? $_GET['k'] : 1;
  12.  
  13.  
  14.  
  15.  
  16. function magicFivesSelect($array, $k) {
  17. if ($n <= 10) {
  18. return $array[k];
  19. } else {
  20. //Tu nie wiem o co chodzi
  21. $m5 = magicFivesSelect(M, ceil(abs(M)/2));
  22. //Tu mam problem, bo nie wiem co było wcześniej
  23. }
  24. }
  25.