algorithmen:algolektionl1 - Informatik 2015

Dies ist eine alte Version des Dokuments!


Lösungsvorschlag

  <form action="sortieren.php" method="POST">
  <input type="text"  name="zahlen" />
  <input type="submit" value="Do it!" />
  </form>
 
  <?php
  $jetzt = microtime();
  print $jetzt;
  $zahlen = $_POST['zahlen'];
  $einzelzahlen = explode(" ", $zahlen);
  $anzahl = count($einzelzahlen);
 
  //echo $anzahl;
  //print_r($einzelzahlen);
 
  // Alle "leeren" Elemente rauswerfen
  $dieguten = array();
  for( $i=0; $i<$anzahl; $i++) {
      if( is_numeric($einzelzahlen[$i])){
  	   print "Index $i: $einzelzahlen[$i] ist Zahl<br />";
  	   $dieguten[] = $einzelzahlen[$i];
      }	
  } 
 
  print_r($dieguten);
 
  $anzahl = count($dieguten);
  $grenze = 0;
 
  while($grenze < $anzahl) {
  	// kleinstes Element suchen
  	$index_min = $grenze;
  	for( $i = $grenze; $i<$anzahl; $i++) {
  		if ($dieguten[$i] < $dieguten[$index_min]) {
  			$index_min = $i;
  		}
  	}
  	// $dieguten[$index_min] ist das kleinste Element#
  	// vertausche $dieguten[$grenze] mit $dieguten[$index_min]
  	$zwischen = $dieguten[$grenze];
  	$dieguten[$grenze] = $dieguten[$index_min];
  	$dieguten[$index_min] = $zwischen;
  	// Grenze eins nach rechts
  	$grenze++;
  } 
  $zeit = microtime() - $jetzt;
 
  print_r($dieguten);
 
  print "dauer: $zeit";
  ?>
Drucken/exportieren