Du befindest dich hier: FSI Informatik » user » Bjørn   (Übersicht)

Bjørn

«Ein gutes Gedächtnis merkt sich nicht alles, sondern vergisst das Unwichtige.» Peter Bamm

Studienfächer:

  • Künstliche Intelligenz
  • Programmiersprachen
  • Kommunikationssysteme
  • 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:

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);
	}

Prolog:

quicksort([], []).
quicksort([E | Ls], Return) :-
	(bagof(BagA, (member(BagA, Ls), BagA < E), As); As = []),
	(bagof(BagB, (member(BagB, Ls), BagB > E), Bs) ; Bs = []),
	quicksort(As, L),
	quicksort(Bs, R),
	flatten([L, E, R], Return).

Haskell:

quicksort([]) = []
quicksort(a:x) = quicksort([b | b <- x, b<=]) ++ [a] ++ quicksort([b | b<-x, b>a])