Vorheriges Thema: Nächstes Thema: |
Autor |
Nachricht |
Gast
|
Verfasst am: 17.04.2005 13:40:49 Titel: Totale Sortierung |
|
|
Nach folgendem habe ich schon überall gesucht aber nichts dazu gefunden:
ich fuelle ein array mit buchstabensalat (geht)
array ist so gross wie die menge der eingegebenen buchstaben
jetzt mochte ich dass er ALLE moeglichkeiten durchspielt die buchstaben zu sortieren
also
abc
bac
cba
acb
zB
ne idee?
Das Geruest habe ich schon:
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Eingabe</title>
<!-- Kommentar
nimm X Buchstaben und sortiere sie auf jede moegliche weise
input abc print abc bac cba acb usw
-->
<script type="text/javascript">
function Text(nimm) {
var Reihe = new String(nimm);
var Fertig = Reihe.split(" ");
<!--
hier fehlt der wichtige teil ^^
-->
document.write(Fertig);
}
</script>
</head>
<body>
<form name="SortierFormular" action="">
<p>Zeichen durch Leerzeichen getrennt:</p>
<input type="text" name="text">
<input type="button" value="Sortieren"
onClick="Text(document.SortierFormular.text.value)">
</form>
</body>
</html> |
|
Nach oben |
|
|
admin Site Admin
Anmeldungsdatum: 16.01.2005 Beiträge: 323 Wohnort: Berlin
|
Verfasst am: 17.04.2005 19:21:47 Titel: |
|
|
da ich nicht alles vorkauen möchte, hier mal die wörtliche überstezung des zu erzeugenden codes:
Code: |
speicher = array()
aktuell = ''
funktion machwas(array)
{
durchlaufe alle in array
{
aktuell += array[i]
entferne i aus array
wenn i ist leer dann speicher += aktuell und aktuell = ''
machwas(array)
}
}
|
|
|
Nach oben |
|
|
Gast
|
Verfasst am: 19.04.2005 13:33:31 Titel: |
|
|
danke sehr
brauchs leider clientseitig, serverseitig mit php ginge es etwa so (falls nochmal jemand ne permutation uscht um anagramme zu loesen):
<?php
$AA = array(
array('m','x','p','x','m','x','p','x','m'),
array('a','s','d', 'f'),
array('y','x','c', 'v', 'b'),
array('q','w','e', 'r', 't', 'z'));
function make_code($ARR) {
$out = '';
foreach($ARR as $nr => $val) {
$var = '$'.chr(97 + $nr).chr(97 + $nr);
$out .= str_repeat(' ', (($nr) * 4));
$out .= 'foreach($ARR as '.$var.') {'."\n";
$HP[] = $var.'=>'.$var;
}
$out .= str_repeat(' ', (($nr + 1) * 4));
$out .= '$TMP = array('.implode($HP, ', ').');'."\n";
$out .= str_repeat(' ', (($nr + 1) * 4));
$out .= 'if (count($TMP) == count($ARR)) {'."\n";
$out .= str_repeat(' ', (($nr + 2) * 4));
$out .= '$EG[] = implode($TMP, \'\');'."\n";
$out .= str_repeat(' ', (($nr + 1) * 4)).'}'."\n";
foreach($ARR as $nr => $val) {
$out .= str_repeat(' ', ((count($ARR) - $nr - 1) * 4)).'}'."\n";
}
return $out;
}
function permutationen($ARR) {
$ARR = array_flip(array_flip($ARR));
$ok = sort($ARR);
$EG = array();
$code = make_code($ARR);
eval($code);
return $EG;
}
?> |
|
Nach oben |
|
|
admin Site Admin
Anmeldungsdatum: 16.01.2005 Beiträge: 323 Wohnort: Berlin
|
Verfasst am: 22.04.2005 12:09:33 Titel: |
|
|
also wenn du das jetzt clientseitig brauchst, brauchst du doch nur die sache 1:1 in javascript umwandeln (was ja nicht allzuschwer sein dürfte weil du quasi nur die $ wegnehmen brauchst) ... oder nicht?
gruss,
jan. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|
|