Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Sortowanie
Forum PHP.pl > Forum > Przedszkole
poniedzialek
Witam
bylbym bardzo wdzięczny gdyby mi ktos podpowiedzial jak napisac w php cos podobnego jak ponizej czyli chodzi mi o sortowanie bąbelkowe losowo wypelnionej tablicy

  1. void BubbleSort(long* tab, long n)
  2. {
  3.      long porownan=0,przestawien=0;
  4.      long i,stop;
  5.      long pom;
  6.      long ostzam;
  7.  
  8.      for(stop=n-1;porownan++,stop>0;stop=ostzam)
  9.      {
  10.            ostzam=0;
  11.            for(i=0;porownan++,i<stop;i++)
  12.            {
  13.                  if (porownan++,tab[i]>tab[i+1])
  14.                  {
  15.                        ostzam=i;
  16.                        przestawien++;
  17.                        pom=tab[i];
  18.                        tab[i]=tab[i+1];
  19.                        tab[i+1]=pom;
  20.                  }
  21.            }
  22.      }
  23.      cout<<"BubbleSort.Por.="<<porownan<<"; Przest.="<<przestawien<<endl;
  24. }
Amorph
robisz 2 petle.
jedna(wewnetrzna) porownoje kolejne pozycje w tabeli i jesli jest mniejsza(wieksza) w zaleznosci jak chcesz to zamienia je miejscami..... itd az dojdzie do konca....
druga petla(zewnetrzna) powoduje powtorzenie 1 tyle razy ile jest pozycji w tabeli... na tym polega sortowanie babelkowe....
P.
poniedzialek
eksperymentowalem w ten sposob
pierwsza czesc czyli losowanie wypelnienie i wyswietlenie tablicy dziala ok
druga niestety zupelnie nie dziala
wyswietla mi ponownie ta sama nieposortowana tablice
gdzie tkwi blad (bledy)questionmark.gif
  1. <?php
  2. define ("licz",NULL);
  3. define ("pomieszane",NULL);
  4.  
  5. function losowanie( $min, $max, $licz ) 
  6. {
  7. $tablica = array();
  8. while( count( $tablica ) < $licz )
  9. {
  10. $los = rand( $min, $max );
  11. $tablica[] = $los;  
  12. }
  13. return $tablica;
  14. }
  15.  
  16.  
  17. $pomieszane = losowanie( 1, 10, 25 );
  18. echo "<b>Wylosowany ciąg</b><br>";
  19. print_r( $pomieszane );
  20.  
  21.  
  22. $index1=0;
  23. $index2=1;
  24.  
  25. for( $i=l; $i<$licz; $i++)
  26. {
  27. for ($j=l;$j<$licz-$i; $j++)
  28. {
  29. if ($pomieszane[$index1]<$pomieszane[$index2]) 
  30. {
  31. $pomoc=$pomieszane[$index1];
  32. $pomieszane[$index1]=$pomieszane[$index2];
  33. $pomieszane[$index2]=$pomoc;
  34. }
  35. $index1++;
  36. $index2++;
  37. }
  38. }
  39.  
  40.  
  41. echo "<br><br><b>Ciąg po posortowaniu</b><br>";
  42. print_r( $pomieszane );
  43.  
  44.  
  45. ?>
DarK MaN
  1. <?php
  2. $tablica = array('adsasda','asa','2acv','zxzz');
  3.  
  4. function BubbleSort($tab)
  5. {
  6.  $porownan=0;
  7.  $przestawien=0;
  8.  $n = count($tab);
  9.  for($stop=$n-1;$porownan++,$stop>0;$stop=$ostzam)
  10.  {
  11.  $ostzam=0;
  12.  for($i=0;$porownan++,$i<$stop;$i++)
  13.  {
  14.  if ($tab[$i]>$tab[$i+1])
  15.  {
  16.  $porownan++;
  17.  $ostzam=$i;
  18.  $przestawien++;
  19.  $pom=$tab[$i];
  20.  $tab[$i]=$tab[$i+1];
  21.  $tab[$i+1]=$pom;
  22.  }
  23.  }
  24.  }
  25. echo("BubbleSort.Por.=".$porownan."; Przest.=".$przestawien."<pre>");
  26. //wyświetla posortowana tablice
  27. print_r($tab);
  28. }
  29.  
  30. BubbleSort($tablica);
  31. ?>


Powinno działać
poniedzialek
Dzieki piekne super dziala
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.