Du befindest dich hier: FSI Informatik » user » Bjørn

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung
user:bjoern [20.10.2006 11:41] Bjoernuser:bjoern [20.10.2006 14:08] Bjoern
Zeile 1: Zeile 1:
 ====== Bjørn ====== ====== Bjørn ======
  
-//<<Ein gutes Gedächtnis merkt sich nicht alles, sondern vergisst das Unwichtige>>// Peter Bamm+//<<Ein gutes Gedächtnis merkt sich nicht alles, sondern vergisst das Unwichtige.>>// Peter Bamm
  
  
Zeile 11: Zeile 11:
   * Astronomie   * Astronomie
  
 +===== Programmiersprachen =====
 +Hier ein kleiner Vergleich von Quicksort in zwei Sprachen. Hierzu belauschen wir einen Dialog zwischen Einstein und Paul Valéry:
  
 +//<<Alles sollte so einfach wie möglich gemacht werden, aber nicht einfacher. >>//
  
 +//<<Was einfach ist, ist immer falsch. Was nicht einfach ist, ist unbrauchbar.>>//
 +
 +**C:**
 +<code C>
 +void quicksort(int a[], int l, int r){
 + if(r>l){
 + int i=l-1, j=r, tmp;
 + for(;;){
 + while(a[++i]<a[r]);
 + while(a[--j]>a[r]);
 + if(i>=j) break;
 + tmp=a[i]; a[i]=a[j]; a[j]=tmp;
 + }
 + tmp=a[i]; a[i]=a[r]; a[r]=tmp;
 +
 + quicksort(a, l, i-1);
 + quicksort(a, i+1, r);
 + }
 +</code>
 +
 +**Prolog:**
 +<code Prolog>
 +quicksort(Ls, Sorted) :- qs(Ls, Hs), flatten(Hs, Sorted).
 +qs([], []).
 +qs([E | Ls], [L , E , R]) :-
 + (bagof(BagA, (member(BagA, Ls), BagA <= E), As); As = []),
 + (bagof(BagB, (member(BagB, Ls), BagB > E), Bs) ; Bs = []),
 + qs(As, L), qs(Bs, R).
 +</code>
 +
 +**Haskell:**
 +<code C>
 +quicksort([]) = []
 +quicksort(a:x) = quicksort([b | b <- x, b<=]) ++ [a] ++ quicksort([b | b<-x, b>a])
 +</code>