<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://ls14-eini.cs.tu-dortmund.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Marius</id>
		<title>EINI - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://ls14-eini.cs.tu-dortmund.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Marius"/>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php/Spezial:Beitr%C3%A4ge/Marius"/>
		<updated>2026-05-23T02:06:03Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1667</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1667"/>
				<updated>2016-07-31T12:59:23Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Mergesort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des [[Arrays]] zu bewegen. Somit besteht das Ende des Arrays immer aus einem sortierten Teilfeld. Nach '''n''' Durchläufen ist damit das Array vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void bubbleSort(int[] A){&lt;br /&gt;
     for( int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
          for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
               if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
               int swap = A[i];&lt;br /&gt;
               A[i] = A[i+1];&lt;br /&gt;
               A[i+1] = swap;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
 &lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 0, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9]&lt;br /&gt;
 [1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, 2, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 8, 9]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 4, 5, 6, 3, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''6'''&amp;lt;/span&amp;gt;, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Array sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Arrays dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Arrays viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void Insertionsort(int[] A) {&lt;br /&gt;
     for (int i = 0; i &amp;lt; A.length-1; i++){&lt;br /&gt;
          for (int j = i+1; j &amp;lt; A.length; j++){&lt;br /&gt;
               if (A[i] &amp;gt; A[j]){&lt;br /&gt;
                    int swap = A[i];&lt;br /&gt;
                    A[i] = A[j];&lt;br /&gt;
                    A[j] = A[i];&lt;br /&gt;
                    }&lt;br /&gt;
               }&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
  &lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, 5, 4, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 1, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 5, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, 8, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 4, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, 8, 5, 6, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 4]&lt;br /&gt;
 [0, 1, 2, 3, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, 6, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 5]&lt;br /&gt;
 [0, 1, 2, 3, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 9, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 6]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, 9, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 7]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 9, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus. Das eingegebene Array wird hierbei solange in zwei Hälften geteilt, bis jedes Teilarray nur noch eine Zahl enthält. Danach werden die Teilarrays wieder zusammengesetzt. Dabei wird bei der Zusammensetzung so sortiert, dass am Ende nur noch ein sortiertes Array vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void Mergesort(int[] a){&lt;br /&gt;
		&lt;br /&gt;
     int[] hilfsarr = new int[a.length];&lt;br /&gt;
		&lt;br /&gt;
     doMergesort(a, hilfsarr, 0, a.length-1);&lt;br /&gt;
&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void doMergesort(int[] a, int[] hilfsarr, int links, int rechts){&lt;br /&gt;
	&lt;br /&gt;
     // Überprüfung, ob der linke Index kleiner als der rechte Index ist, ansonsten ist das Array sortiert	&lt;br /&gt;
     if ( links &amp;lt; rechts){&lt;br /&gt;
&lt;br /&gt;
          // Emittlung des Index des Elements, welches die Mitte ist&lt;br /&gt;
          int mitte = links + (rechts - links) / 2;&lt;br /&gt;
&lt;br /&gt;
          // Sortiere die linke Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, links, mitte);&lt;br /&gt;
          &lt;br /&gt;
          // Sortiere die rechts Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, mitte + 1, rechts);&lt;br /&gt;
          &lt;br /&gt;
          // &amp;quot;Verschmelze&amp;quot; (engl. merge) die beiden sortierten Hälten&lt;br /&gt;
          merge(a, hilfsarr, links, mitte, rechts);&lt;br /&gt;
          &lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void merge(int[] a, int[] hilfsarr, int links, int mitte, int rechts){&lt;br /&gt;
		&lt;br /&gt;
     // Kopiere linke und rechte Hälfte in ein Hilfsarray&lt;br /&gt;
     for (int i = links; i &amp;lt;= rechts; i++){&lt;br /&gt;
          hilfsarr[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     int i = links;&lt;br /&gt;
     int j = mitte + 1;&lt;br /&gt;
     int k = links;&lt;br /&gt;
     &lt;br /&gt;
     // Kopiere die kleinsten Werte entweder von der linken Seite oder vom der rechten Seite zurück in das Ursprungsarray	&lt;br /&gt;
     while (i &amp;lt;= mitte &amp;amp;&amp;amp; j &amp;lt;= rechts) {&lt;br /&gt;
          if (hilfsarr[i] &amp;lt;= hilfsarr[j]){&lt;br /&gt;
               a[k] = hilfsarr[i];&lt;br /&gt;
               i++;&lt;br /&gt;
          }&lt;br /&gt;
          else {&lt;br /&gt;
               a[k] = hilfsarr[j];&lt;br /&gt;
               j++;&lt;br /&gt;
               }&lt;br /&gt;
               k++;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     // Kopiere den Rest der linken Seite in das Ursprungsarray		&lt;br /&gt;
     while (i &amp;lt;= mitte){&lt;br /&gt;
          a[k] = hilfsarr[i];&lt;br /&gt;
          k++;&lt;br /&gt;
          i++;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
 &lt;br /&gt;
 [5, 4, 1, 8, 0] ; [2, 6, 9, 7, 3]&lt;br /&gt;
 [5, 4] ; [1, 8, 0] ; [2, 6] ; [9, 7, 3]&lt;br /&gt;
 [5] ; [4] ; [1, 8] ; [0] ; [2] ; [6] ; [9] ; [7, 3]&lt;br /&gt;
 [5] ; [4] ; [1] ; [8] ; [0] ; [2] ; [6] ; [9]; [7] ; [3]&lt;br /&gt;
 [4, 5] ; [1, 8] ; [0, 2] ; [6, 9] ; [3, 7]&lt;br /&gt;
 [1, 4, 5, 8] ; [0, 2, 6, 9] ; [3, 7]&lt;br /&gt;
 [0, 1, 2, 4, 5, 6, 8, 9] ; [3, 7]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Array vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilarrays, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilarrays werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Array in Teilarrays der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilarrays und damit das gesamte Array. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1666</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1666"/>
				<updated>2016-07-31T12:58:11Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Mergesort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des [[Arrays]] zu bewegen. Somit besteht das Ende des Arrays immer aus einem sortierten Teilfeld. Nach '''n''' Durchläufen ist damit das Array vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void bubbleSort(int[] A){&lt;br /&gt;
     for( int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
          for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
               if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
               int swap = A[i];&lt;br /&gt;
               A[i] = A[i+1];&lt;br /&gt;
               A[i+1] = swap;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
 &lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 0, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9]&lt;br /&gt;
 [1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, 2, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 8, 9]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 4, 5, 6, 3, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''6'''&amp;lt;/span&amp;gt;, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Array sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Arrays dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Arrays viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void Insertionsort(int[] A) {&lt;br /&gt;
     for (int i = 0; i &amp;lt; A.length-1; i++){&lt;br /&gt;
          for (int j = i+1; j &amp;lt; A.length; j++){&lt;br /&gt;
               if (A[i] &amp;gt; A[j]){&lt;br /&gt;
                    int swap = A[i];&lt;br /&gt;
                    A[i] = A[j];&lt;br /&gt;
                    A[j] = A[i];&lt;br /&gt;
                    }&lt;br /&gt;
               }&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
  &lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, 5, 4, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 1, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 5, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, 8, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 4, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, 8, 5, 6, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 4]&lt;br /&gt;
 [0, 1, 2, 3, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, 6, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 5]&lt;br /&gt;
 [0, 1, 2, 3, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 9, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 6]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, 9, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 7]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 9, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus. Das eingegebene Array wird hierbei solange in zwei Hälften geteilt, bis jedes Teilarray nur noch eine Zahl enthält. Danach werden die Teilarrays wieder zusammengesetzt. Dabei wird bei der Zusammensetzung so sortiert, dass am Ende nur noch ein sortiertes Array vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void Mergesort(int[] a){&lt;br /&gt;
		&lt;br /&gt;
     int[] hilfsarr = new int[a.length];&lt;br /&gt;
		&lt;br /&gt;
     doMergesort(a, hilfsarr, 0, a.length-1);&lt;br /&gt;
&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void doMergesort(int[] a, int[] hilfsarr, int links, int rechts){&lt;br /&gt;
	&lt;br /&gt;
     // Überprüfung, ob der linke Index kleiner als der rechte Index ist, ansonsten ist das Array sortiert	&lt;br /&gt;
     if ( links &amp;lt; rechts){&lt;br /&gt;
&lt;br /&gt;
          // Emittlung des Index des Elements, welches die Mitte ist&lt;br /&gt;
          int mitte = links + (rechts - links) / 2;&lt;br /&gt;
&lt;br /&gt;
          // Sortiere die linke Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, links, mitte);&lt;br /&gt;
          &lt;br /&gt;
          // Sortiere die rechts Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, mitte + 1, rechts);&lt;br /&gt;
          &lt;br /&gt;
          // &amp;quot;Verschmelze&amp;quot; (engl. merge) die beiden sortierten Hälten&lt;br /&gt;
          merge(a, hilfsarr, links, mitte, rechts);&lt;br /&gt;
          &lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void merge(int[] a, int[] hilfsarr, int links, int mitte, int rechts){&lt;br /&gt;
		&lt;br /&gt;
     // Kopiere linke und rechte Hälfte in ein Hilfsarray&lt;br /&gt;
     for (int i = links; i &amp;lt;= rechts; i++){&lt;br /&gt;
          hilfsarr[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     int i = links;&lt;br /&gt;
     int j = mitte + 1;&lt;br /&gt;
     int k = links;&lt;br /&gt;
     &lt;br /&gt;
     // Kopiere die kleinsten Werte entweder von der linken Seite oder vom der rechten Seite zurück in das Ursprungsarray	&lt;br /&gt;
     while (i &amp;lt;= mitte &amp;amp;&amp;amp; j &amp;lt;= rechts) {&lt;br /&gt;
          if (hilfsarr[i] &amp;lt;= hilfsarr[j]){&lt;br /&gt;
               a[k] = hilfsarr[i];&lt;br /&gt;
               i++;&lt;br /&gt;
          }&lt;br /&gt;
          else {&lt;br /&gt;
               a[k] = hilfsarr[j];&lt;br /&gt;
               j++;&lt;br /&gt;
               }&lt;br /&gt;
               k++;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     // Kopiere den Rest der linken Seite in das Ursprungsarray		&lt;br /&gt;
     while (i &amp;lt;= mitte){&lt;br /&gt;
          a[k] = hilfsarr[i];&lt;br /&gt;
          k++;&lt;br /&gt;
          i++;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Array vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilarrays, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilarrays werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Array in Teilarrays der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilarrays und damit das gesamte Array. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1665</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1665"/>
				<updated>2016-07-31T12:57:35Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Mergesort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des [[Arrays]] zu bewegen. Somit besteht das Ende des Arrays immer aus einem sortierten Teilfeld. Nach '''n''' Durchläufen ist damit das Array vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void bubbleSort(int[] A){&lt;br /&gt;
     for( int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
          for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
               if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
               int swap = A[i];&lt;br /&gt;
               A[i] = A[i+1];&lt;br /&gt;
               A[i+1] = swap;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
 &lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 0, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9]&lt;br /&gt;
 [1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, 2, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 8, 9]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 4, 5, 6, 3, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''6'''&amp;lt;/span&amp;gt;, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Array sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Arrays dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Arrays viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void Insertionsort(int[] A) {&lt;br /&gt;
     for (int i = 0; i &amp;lt; A.length-1; i++){&lt;br /&gt;
          for (int j = i+1; j &amp;lt; A.length; j++){&lt;br /&gt;
               if (A[i] &amp;gt; A[j]){&lt;br /&gt;
                    int swap = A[i];&lt;br /&gt;
                    A[i] = A[j];&lt;br /&gt;
                    A[j] = A[i];&lt;br /&gt;
                    }&lt;br /&gt;
               }&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
  &lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, 5, 4, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 1, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 5, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, 8, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 4, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, 8, 5, 6, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 4]&lt;br /&gt;
 [0, 1, 2, 3, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, 6, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 5]&lt;br /&gt;
 [0, 1, 2, 3, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 9, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 6]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, 9, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 7]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 9, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus. Das eingegebene Array wird hierbei solange in zwei Hälften geteilt, bis jedes Teilarray nur noch eine Zahl enthält. Danach werden die Teilarrays wieder zusammengesetzt. Dabei wird bei der Zusammensetzung so sortiert, dass am Ende nur noch ein sortiertes Array vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void Mergesort(int[] a){&lt;br /&gt;
		&lt;br /&gt;
     int[] hilfsarr = new int[a.length];&lt;br /&gt;
		&lt;br /&gt;
     doMergesort(a, hilfsarr, 0, a.length-1);&lt;br /&gt;
&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void doMergesort(int[] a, int[] hilfsarr, int links, int rechts){&lt;br /&gt;
	&lt;br /&gt;
     // Überprüfung, ob der linke Index kleiner als der rechte Index ist, ansonsten ist das Array sortiert	&lt;br /&gt;
     if ( links &amp;lt; rechts){&lt;br /&gt;
&lt;br /&gt;
          // Emittlung des Index des Elements, welches die Mitte ist&lt;br /&gt;
          int mitte = links + (rechts - links) / 2;&lt;br /&gt;
&lt;br /&gt;
          // Sortiere die linke Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, links, mitte);&lt;br /&gt;
          &lt;br /&gt;
          // Sortiere die rechts Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, mitte + 1, rechts);&lt;br /&gt;
          &lt;br /&gt;
          // &amp;quot;Verschmelze&amp;quot; (engl. merge) die beiden sortierten Hälten&lt;br /&gt;
          merge(a, hilfsarr, links, mitte, rechts);&lt;br /&gt;
          &lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void merge(int[] a, int[] hilfsarr, int links, int mitte, int rechts){&lt;br /&gt;
		&lt;br /&gt;
     // Kopiere linke und rechte Hälfte in ein Hilfsarray&lt;br /&gt;
     for (int i = links; i &amp;lt;= rechts; i++){&lt;br /&gt;
          hilfsarr[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     int i = links;&lt;br /&gt;
     int j = mitte + 1;&lt;br /&gt;
     int k = links;&lt;br /&gt;
     &lt;br /&gt;
     // Kopiere die kleinsten Werte entweder von der linken Seite oder vom der rechten Seite zurück in das Ursprungsarray	&lt;br /&gt;
     while (i &amp;lt;= mitte &amp;amp;&amp;amp; j &amp;lt;= rechts) {&lt;br /&gt;
          if (hilfsarr[i] &amp;lt;= hilfsarr[j]){&lt;br /&gt;
               a[k] = hilfsarr[i];&lt;br /&gt;
               i++;&lt;br /&gt;
          }&lt;br /&gt;
          else {&lt;br /&gt;
               a[k] = hilfsarr[j];&lt;br /&gt;
               j++;&lt;br /&gt;
               }&lt;br /&gt;
               k++;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     // Kopiere den Rest der linken Seite in das Ursprungsarray		&lt;br /&gt;
     while (i &amp;lt;= mitte){&lt;br /&gt;
          a[k] = hilfsarr[i];&lt;br /&gt;
          k++;&lt;br /&gt;
          i++;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Array vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilarrays, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilarrays werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Array in Teilarrays der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilarrays und damit das gesamte Array. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1529</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1529"/>
				<updated>2016-06-25T16:03:51Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Insertionsort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des Feldes zu bewegen. Somit besteht das Ende des Feldes immer aus einem sortierten Teilfeld. Nach '''n''' Durchläufen ist damit das Feld vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void bubbleSort(int[] A){&lt;br /&gt;
     for( int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
          for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
               if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
               int swap = A[i];&lt;br /&gt;
               A[i] = A[i+1];&lt;br /&gt;
               A[i+1] = swap;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
 &lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 0, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9]&lt;br /&gt;
 [1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, 2, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 8, 9]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 4, 5, 6, 3, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''6'''&amp;lt;/span&amp;gt;, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Feld sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Feldes dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Feldern viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void Insertionsort(int[] A) {&lt;br /&gt;
     for (int i = 0; i &amp;lt; A.length-1; i++){&lt;br /&gt;
          for (int j = i+1; j &amp;lt; A.length; j++){&lt;br /&gt;
               if (A[i] &amp;gt; A[j]){&lt;br /&gt;
                    int swap = A[i];&lt;br /&gt;
                    A[i] = A[j];&lt;br /&gt;
                    A[j] = A[i];&lt;br /&gt;
                    }&lt;br /&gt;
               }&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
  &lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, 5, 4, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 1, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 5, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, 8, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 4, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, 8, 5, 6, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 4]&lt;br /&gt;
 [0, 1, 2, 3, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, 6, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 5]&lt;br /&gt;
 [0, 1, 2, 3, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 9, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 6]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, 9, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 7]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 9, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void Mergesort(int[] a){&lt;br /&gt;
		&lt;br /&gt;
     int[] hilfsarr = new int[a.length];&lt;br /&gt;
		&lt;br /&gt;
     doMergesort(a, hilfsarr, 0, a.length-1);&lt;br /&gt;
&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void doMergesort(int[] a, int[] hilfsarr, int links, int rechts){&lt;br /&gt;
	&lt;br /&gt;
     // Überprüfung, ob der linke Index kleiner als der rechte Index ist, ansonsten ist das Array sortiert	&lt;br /&gt;
     if ( links &amp;lt; rechts){&lt;br /&gt;
&lt;br /&gt;
          // Emittlung des Index des Elements, welches die Mitte ist&lt;br /&gt;
          int mitte = links + (rechts - links) / 2;&lt;br /&gt;
&lt;br /&gt;
          // Sortiere die linke Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, links, mitte);&lt;br /&gt;
          &lt;br /&gt;
          // Sortiere die rechts Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, mitte + 1, rechts);&lt;br /&gt;
          &lt;br /&gt;
          // &amp;quot;Verschmelze&amp;quot; (engl. merge) die beiden sortierten Hälten&lt;br /&gt;
          merge(a, hilfsarr, links, mitte, rechts);&lt;br /&gt;
          &lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void merge(int[] a, int[] hilfsarr, int links, int mitte, int rechts){&lt;br /&gt;
		&lt;br /&gt;
     // Kopiere linke und rechte Hälfte in ein Hilfsarray&lt;br /&gt;
     for (int i = links; i &amp;lt;= rechts; i++){&lt;br /&gt;
          hilfsarr[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     int i = links;&lt;br /&gt;
     int j = mitte + 1;&lt;br /&gt;
     int k = links;&lt;br /&gt;
     &lt;br /&gt;
     // Kopiere die kleinsten Werte entweder von der linken Seite oder vom der rechten Seite zurück in das Ursprungsarray	&lt;br /&gt;
     while (i &amp;lt;= mitte &amp;amp;&amp;amp; j &amp;lt;= rechts) {&lt;br /&gt;
          if (hilfsarr[i] &amp;lt;= hilfsarr[j]){&lt;br /&gt;
               a[k] = hilfsarr[i];&lt;br /&gt;
               i++;&lt;br /&gt;
          }&lt;br /&gt;
          else {&lt;br /&gt;
               a[k] = hilfsarr[j];&lt;br /&gt;
               j++;&lt;br /&gt;
               }&lt;br /&gt;
               k++;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     // Kopiere den Rest der linken Seite in das Ursprungsarray		&lt;br /&gt;
     while (i &amp;lt;= mitte){&lt;br /&gt;
          a[k] = hilfsarr[i];&lt;br /&gt;
          k++;&lt;br /&gt;
          i++;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Feld vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilfelder, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilfelder werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Feld in Teilfelder der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilfelder und damit das ganze Feld. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1528</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1528"/>
				<updated>2016-06-25T16:03:39Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Insertionsort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des Feldes zu bewegen. Somit besteht das Ende des Feldes immer aus einem sortierten Teilfeld. Nach '''n''' Durchläufen ist damit das Feld vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void bubbleSort(int[] A){&lt;br /&gt;
     for( int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
          for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
               if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
               int swap = A[i];&lt;br /&gt;
               A[i] = A[i+1];&lt;br /&gt;
               A[i+1] = swap;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
 &lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 0, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9]&lt;br /&gt;
 [1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, 2, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 8, 9]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 4, 5, 6, 3, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''6'''&amp;lt;/span&amp;gt;, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Feld sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Feldes dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Feldern viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void Insertionsort(int[] A) {&lt;br /&gt;
     for (int i = 0; i &amp;lt; A.length-1; i++){&lt;br /&gt;
          for (int j = i+1; j &amp;lt; A.length; j++){&lt;br /&gt;
               if (A[i] &amp;gt; A[j]){&lt;br /&gt;
                    int swap = A[i];&lt;br /&gt;
                    A[i] = A[j];&lt;br /&gt;
                    A[j] = A[i];&lt;br /&gt;
                    }&lt;br /&gt;
               }&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
  &lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, 5, 4, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 1, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 5, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, 8, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 4, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, 8, 5, 6, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 4]&lt;br /&gt;
 [0, 1, 2, 3, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 8, 6, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 5]&lt;br /&gt;
 [0, 1, 2, 3, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 9, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 9, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 6]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, 9, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 7]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 9, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void Mergesort(int[] a){&lt;br /&gt;
		&lt;br /&gt;
     int[] hilfsarr = new int[a.length];&lt;br /&gt;
		&lt;br /&gt;
     doMergesort(a, hilfsarr, 0, a.length-1);&lt;br /&gt;
&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void doMergesort(int[] a, int[] hilfsarr, int links, int rechts){&lt;br /&gt;
	&lt;br /&gt;
     // Überprüfung, ob der linke Index kleiner als der rechte Index ist, ansonsten ist das Array sortiert	&lt;br /&gt;
     if ( links &amp;lt; rechts){&lt;br /&gt;
&lt;br /&gt;
          // Emittlung des Index des Elements, welches die Mitte ist&lt;br /&gt;
          int mitte = links + (rechts - links) / 2;&lt;br /&gt;
&lt;br /&gt;
          // Sortiere die linke Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, links, mitte);&lt;br /&gt;
          &lt;br /&gt;
          // Sortiere die rechts Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, mitte + 1, rechts);&lt;br /&gt;
          &lt;br /&gt;
          // &amp;quot;Verschmelze&amp;quot; (engl. merge) die beiden sortierten Hälten&lt;br /&gt;
          merge(a, hilfsarr, links, mitte, rechts);&lt;br /&gt;
          &lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void merge(int[] a, int[] hilfsarr, int links, int mitte, int rechts){&lt;br /&gt;
		&lt;br /&gt;
     // Kopiere linke und rechte Hälfte in ein Hilfsarray&lt;br /&gt;
     for (int i = links; i &amp;lt;= rechts; i++){&lt;br /&gt;
          hilfsarr[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     int i = links;&lt;br /&gt;
     int j = mitte + 1;&lt;br /&gt;
     int k = links;&lt;br /&gt;
     &lt;br /&gt;
     // Kopiere die kleinsten Werte entweder von der linken Seite oder vom der rechten Seite zurück in das Ursprungsarray	&lt;br /&gt;
     while (i &amp;lt;= mitte &amp;amp;&amp;amp; j &amp;lt;= rechts) {&lt;br /&gt;
          if (hilfsarr[i] &amp;lt;= hilfsarr[j]){&lt;br /&gt;
               a[k] = hilfsarr[i];&lt;br /&gt;
               i++;&lt;br /&gt;
          }&lt;br /&gt;
          else {&lt;br /&gt;
               a[k] = hilfsarr[j];&lt;br /&gt;
               j++;&lt;br /&gt;
               }&lt;br /&gt;
               k++;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     // Kopiere den Rest der linken Seite in das Ursprungsarray		&lt;br /&gt;
     while (i &amp;lt;= mitte){&lt;br /&gt;
          a[k] = hilfsarr[i];&lt;br /&gt;
          k++;&lt;br /&gt;
          i++;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Feld vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilfelder, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilfelder werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Feld in Teilfelder der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilfelder und damit das ganze Feld. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1527</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1527"/>
				<updated>2016-06-25T15:59:15Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Insertionsort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des Feldes zu bewegen. Somit besteht das Ende des Feldes immer aus einem sortierten Teilfeld. Nach '''n''' Durchläufen ist damit das Feld vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void bubbleSort(int[] A){&lt;br /&gt;
     for( int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
          for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
               if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
               int swap = A[i];&lt;br /&gt;
               A[i] = A[i+1];&lt;br /&gt;
               A[i+1] = swap;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
 &lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 0, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9]&lt;br /&gt;
 [1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, 2, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 8, 9]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 4, 5, 6, 3, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''6'''&amp;lt;/span&amp;gt;, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Feld sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Feldes dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Feldern viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void Insertionsort(int[] A) {&lt;br /&gt;
     for (int i = 0; i &amp;lt; A.length-1; i++){&lt;br /&gt;
          for (int j = i+1; j &amp;lt; A.length; j++){&lt;br /&gt;
               if (A[i] &amp;gt; A[j]){&lt;br /&gt;
                    int swap = A[i];&lt;br /&gt;
                    A[i] = A[j];&lt;br /&gt;
                    A[j] = A[i];&lt;br /&gt;
                    }&lt;br /&gt;
               }&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
 &lt;br /&gt;
 ['''4''', '''5''', 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 ['''1''', 5, '''4''', 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 ['''0''', 5, 4, 8, '''1''', 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, '''4''', '''5''', 8, 1, 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, '''1''', 5, 8, '''4''', 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, '''4''', 8, '''5''', 2, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, '''2''', 8, 5, '''4''', 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, '''5''', '''8''', 4, 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, '''4''', 8, '''5''', 6, 9, 7, 3]&lt;br /&gt;
 [0, 1, 2, '''3''', 8, 5, 6, 9, 7, '''4''']&lt;br /&gt;
 [0, 1, 2, 3, '''5''', '''8''', 6, 9, 7, 4]&lt;br /&gt;
 [0, 1, 2, 3, '''4''', 8, 6, 9, 7, '''5''']&lt;br /&gt;
 [0, 1, 2, 3, 4, '''6''', '''8''', 9, 7, 5]&lt;br /&gt;
 [0, 1, 2, 3, 4, '''5''', 8, 9, 7, '''6''']&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, '''7''', 9, '''8''', 6]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, '''6''', 9, 8, '''7''']&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, '''8''', '''9''', 7]&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, '''7''', 9, '''8''']&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, '''8''', '''9''']&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;
&lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void Mergesort(int[] a){&lt;br /&gt;
		&lt;br /&gt;
     int[] hilfsarr = new int[a.length];&lt;br /&gt;
		&lt;br /&gt;
     doMergesort(a, hilfsarr, 0, a.length-1);&lt;br /&gt;
&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void doMergesort(int[] a, int[] hilfsarr, int links, int rechts){&lt;br /&gt;
	&lt;br /&gt;
     // Überprüfung, ob der linke Index kleiner als der rechte Index ist, ansonsten ist das Array sortiert	&lt;br /&gt;
     if ( links &amp;lt; rechts){&lt;br /&gt;
&lt;br /&gt;
          // Emittlung des Index des Elements, welches die Mitte ist&lt;br /&gt;
          int mitte = links + (rechts - links) / 2;&lt;br /&gt;
&lt;br /&gt;
          // Sortiere die linke Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, links, mitte);&lt;br /&gt;
          &lt;br /&gt;
          // Sortiere die rechts Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, mitte + 1, rechts);&lt;br /&gt;
          &lt;br /&gt;
          // &amp;quot;Verschmelze&amp;quot; (engl. merge) die beiden sortierten Hälten&lt;br /&gt;
          merge(a, hilfsarr, links, mitte, rechts);&lt;br /&gt;
          &lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void merge(int[] a, int[] hilfsarr, int links, int mitte, int rechts){&lt;br /&gt;
		&lt;br /&gt;
     // Kopiere linke und rechte Hälfte in ein Hilfsarray&lt;br /&gt;
     for (int i = links; i &amp;lt;= rechts; i++){&lt;br /&gt;
          hilfsarr[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     int i = links;&lt;br /&gt;
     int j = mitte + 1;&lt;br /&gt;
     int k = links;&lt;br /&gt;
     &lt;br /&gt;
     // Kopiere die kleinsten Werte entweder von der linken Seite oder vom der rechten Seite zurück in das Ursprungsarray	&lt;br /&gt;
     while (i &amp;lt;= mitte &amp;amp;&amp;amp; j &amp;lt;= rechts) {&lt;br /&gt;
          if (hilfsarr[i] &amp;lt;= hilfsarr[j]){&lt;br /&gt;
               a[k] = hilfsarr[i];&lt;br /&gt;
               i++;&lt;br /&gt;
          }&lt;br /&gt;
          else {&lt;br /&gt;
               a[k] = hilfsarr[j];&lt;br /&gt;
               j++;&lt;br /&gt;
               }&lt;br /&gt;
               k++;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     // Kopiere den Rest der linken Seite in das Ursprungsarray		&lt;br /&gt;
     while (i &amp;lt;= mitte){&lt;br /&gt;
          a[k] = hilfsarr[i];&lt;br /&gt;
          k++;&lt;br /&gt;
          i++;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Feld vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilfelder, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilfelder werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Feld in Teilfelder der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilfelder und damit das ganze Feld. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1526</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1526"/>
				<updated>2016-06-25T15:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Bubblesort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des Feldes zu bewegen. Somit besteht das Ende des Feldes immer aus einem sortierten Teilfeld. Nach '''n''' Durchläufen ist damit das Feld vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void bubbleSort(int[] A){&lt;br /&gt;
     for( int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
          for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
               if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
               int swap = A[i];&lt;br /&gt;
               A[i] = A[i+1];&lt;br /&gt;
               A[i+1] = swap;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
 &lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 0, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9]&lt;br /&gt;
 [1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, 2, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 8, 9]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 4, 5, 6, 3, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''6'''&amp;lt;/span&amp;gt;, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Feld sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Feldes dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Feldern viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void Insertionsort(int[] A) {&lt;br /&gt;
     for (int i = 0; i &amp;lt; A.length-1; i++){&lt;br /&gt;
          for (int j = i+1; j &amp;lt; A.length; j++){&lt;br /&gt;
               if (A[i] &amp;gt; A[j]){&lt;br /&gt;
                    int swap = A[i];&lt;br /&gt;
                    A[i] = A[j];&lt;br /&gt;
                    A[j] = A[i];&lt;br /&gt;
                    }&lt;br /&gt;
               }&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void Mergesort(int[] a){&lt;br /&gt;
		&lt;br /&gt;
     int[] hilfsarr = new int[a.length];&lt;br /&gt;
		&lt;br /&gt;
     doMergesort(a, hilfsarr, 0, a.length-1);&lt;br /&gt;
&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void doMergesort(int[] a, int[] hilfsarr, int links, int rechts){&lt;br /&gt;
	&lt;br /&gt;
     // Überprüfung, ob der linke Index kleiner als der rechte Index ist, ansonsten ist das Array sortiert	&lt;br /&gt;
     if ( links &amp;lt; rechts){&lt;br /&gt;
&lt;br /&gt;
          // Emittlung des Index des Elements, welches die Mitte ist&lt;br /&gt;
          int mitte = links + (rechts - links) / 2;&lt;br /&gt;
&lt;br /&gt;
          // Sortiere die linke Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, links, mitte);&lt;br /&gt;
          &lt;br /&gt;
          // Sortiere die rechts Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, mitte + 1, rechts);&lt;br /&gt;
          &lt;br /&gt;
          // &amp;quot;Verschmelze&amp;quot; (engl. merge) die beiden sortierten Hälten&lt;br /&gt;
          merge(a, hilfsarr, links, mitte, rechts);&lt;br /&gt;
          &lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void merge(int[] a, int[] hilfsarr, int links, int mitte, int rechts){&lt;br /&gt;
		&lt;br /&gt;
     // Kopiere linke und rechte Hälfte in ein Hilfsarray&lt;br /&gt;
     for (int i = links; i &amp;lt;= rechts; i++){&lt;br /&gt;
          hilfsarr[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     int i = links;&lt;br /&gt;
     int j = mitte + 1;&lt;br /&gt;
     int k = links;&lt;br /&gt;
     &lt;br /&gt;
     // Kopiere die kleinsten Werte entweder von der linken Seite oder vom der rechten Seite zurück in das Ursprungsarray	&lt;br /&gt;
     while (i &amp;lt;= mitte &amp;amp;&amp;amp; j &amp;lt;= rechts) {&lt;br /&gt;
          if (hilfsarr[i] &amp;lt;= hilfsarr[j]){&lt;br /&gt;
               a[k] = hilfsarr[i];&lt;br /&gt;
               i++;&lt;br /&gt;
          }&lt;br /&gt;
          else {&lt;br /&gt;
               a[k] = hilfsarr[j];&lt;br /&gt;
               j++;&lt;br /&gt;
               }&lt;br /&gt;
               k++;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     // Kopiere den Rest der linken Seite in das Ursprungsarray		&lt;br /&gt;
     while (i &amp;lt;= mitte){&lt;br /&gt;
          a[k] = hilfsarr[i];&lt;br /&gt;
          k++;&lt;br /&gt;
          i++;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Feld vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilfelder, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilfelder werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Feld in Teilfelder der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilfelder und damit das ganze Feld. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1525</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1525"/>
				<updated>2016-06-25T15:31:28Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Bubblesort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des Feldes zu bewegen. Somit besteht das Ende des Feldes immer aus einem sortierten Teilfeld. Nach '''n''' Durchläufen ist damit das Feld vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void bubbleSort(int[] A){&lt;br /&gt;
     for( int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
          for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
               if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
               int swap = A[i];&lt;br /&gt;
               A[i] = A[i+1];&lt;br /&gt;
               A[i+1] = swap;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
 &lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 0, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9]&lt;br /&gt;
 [1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, 2, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 8, 9]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 4, 5, 6, 3, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''6'''&amp;lt;/span&amp;gt;, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 8, 9]&lt;br /&gt;
 &lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Feld sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Feldes dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Feldern viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void Insertionsort(int[] A) {&lt;br /&gt;
     for (int i = 0; i &amp;lt; A.length-1; i++){&lt;br /&gt;
          for (int j = i+1; j &amp;lt; A.length; j++){&lt;br /&gt;
               if (A[i] &amp;gt; A[j]){&lt;br /&gt;
                    int swap = A[i];&lt;br /&gt;
                    A[i] = A[j];&lt;br /&gt;
                    A[j] = A[i];&lt;br /&gt;
                    }&lt;br /&gt;
               }&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void Mergesort(int[] a){&lt;br /&gt;
		&lt;br /&gt;
     int[] hilfsarr = new int[a.length];&lt;br /&gt;
		&lt;br /&gt;
     doMergesort(a, hilfsarr, 0, a.length-1);&lt;br /&gt;
&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void doMergesort(int[] a, int[] hilfsarr, int links, int rechts){&lt;br /&gt;
	&lt;br /&gt;
     // Überprüfung, ob der linke Index kleiner als der rechte Index ist, ansonsten ist das Array sortiert	&lt;br /&gt;
     if ( links &amp;lt; rechts){&lt;br /&gt;
&lt;br /&gt;
          // Emittlung des Index des Elements, welches die Mitte ist&lt;br /&gt;
          int mitte = links + (rechts - links) / 2;&lt;br /&gt;
&lt;br /&gt;
          // Sortiere die linke Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, links, mitte);&lt;br /&gt;
          &lt;br /&gt;
          // Sortiere die rechts Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, mitte + 1, rechts);&lt;br /&gt;
          &lt;br /&gt;
          // &amp;quot;Verschmelze&amp;quot; (engl. merge) die beiden sortierten Hälten&lt;br /&gt;
          merge(a, hilfsarr, links, mitte, rechts);&lt;br /&gt;
          &lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void merge(int[] a, int[] hilfsarr, int links, int mitte, int rechts){&lt;br /&gt;
		&lt;br /&gt;
     // Kopiere linke und rechte Hälfte in ein Hilfsarray&lt;br /&gt;
     for (int i = links; i &amp;lt;= rechts; i++){&lt;br /&gt;
          hilfsarr[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     int i = links;&lt;br /&gt;
     int j = mitte + 1;&lt;br /&gt;
     int k = links;&lt;br /&gt;
     &lt;br /&gt;
     // Kopiere die kleinsten Werte entweder von der linken Seite oder vom der rechten Seite zurück in das Ursprungsarray	&lt;br /&gt;
     while (i &amp;lt;= mitte &amp;amp;&amp;amp; j &amp;lt;= rechts) {&lt;br /&gt;
          if (hilfsarr[i] &amp;lt;= hilfsarr[j]){&lt;br /&gt;
               a[k] = hilfsarr[i];&lt;br /&gt;
               i++;&lt;br /&gt;
          }&lt;br /&gt;
          else {&lt;br /&gt;
               a[k] = hilfsarr[j];&lt;br /&gt;
               j++;&lt;br /&gt;
               }&lt;br /&gt;
               k++;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     // Kopiere den Rest der linken Seite in das Ursprungsarray		&lt;br /&gt;
     while (i &amp;lt;= mitte){&lt;br /&gt;
          a[k] = hilfsarr[i];&lt;br /&gt;
          k++;&lt;br /&gt;
          i++;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Feld vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilfelder, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilfelder werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Feld in Teilfelder der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilfelder und damit das ganze Feld. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1524</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1524"/>
				<updated>2016-06-25T15:31:10Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Sortieralgoritmen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des Feldes zu bewegen. Somit besteht das Ende des Feldes immer aus einem sortierten Teilfeld. Nach '''n''' Durchläufen ist damit das Feld vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void bubbleSort(int[] A){&lt;br /&gt;
     for( int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
          for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
               if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
               int swap = A[i];&lt;br /&gt;
               A[i] = A[i+1];&lt;br /&gt;
               A[i+1] = swap;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 ''[5, 4, 1, 8, 0, 2, 6, 9, 7, 3]''&lt;br /&gt;
&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 1, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 8, 0, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 2, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''8'''&amp;lt;/span&amp;gt;, 6, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''6'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9, 7, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;, 3]&lt;br /&gt;
 [4, 1, 5, 0, 2, 6, 8, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''9'''&amp;lt;/span&amp;gt;]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 0, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 2, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 8, 7, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 3, 9]&lt;br /&gt;
 [1, 4, 0, 2, 5, 6, 7, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''8'''&amp;lt;/span&amp;gt;, 9]&lt;br /&gt;
 [1, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 2, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''2'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 3, 8, 9]&lt;br /&gt;
 [1, 0, 2, 4, 5, 6, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''7'''&amp;lt;/span&amp;gt;, 8, 9]&lt;br /&gt;
 [&amp;lt;span style=&amp;quot;color:red&amp;gt;'''0'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''1'''&amp;lt;/span&amp;gt;, 2, 4, 5, 6, 3, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, 5, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;,&amp;lt;span style=&amp;quot;color:red&amp;gt; '''6'''&amp;lt;/span&amp;gt;, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, 4, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''5'''&amp;lt;/span&amp;gt;, 6, 7, 8, 9]&lt;br /&gt;
 [0, 1, 2, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''3'''&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:red&amp;gt;'''4'''&amp;lt;/span&amp;gt;, 5, 6, 7, 8, 9]&lt;br /&gt;
&lt;br /&gt;
 ''[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Feld sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Feldes dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Feldern viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void Insertionsort(int[] A) {&lt;br /&gt;
     for (int i = 0; i &amp;lt; A.length-1; i++){&lt;br /&gt;
          for (int j = i+1; j &amp;lt; A.length; j++){&lt;br /&gt;
               if (A[i] &amp;gt; A[j]){&lt;br /&gt;
                    int swap = A[i];&lt;br /&gt;
                    A[i] = A[j];&lt;br /&gt;
                    A[j] = A[i];&lt;br /&gt;
                    }&lt;br /&gt;
               }&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Beispiel:&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void Mergesort(int[] a){&lt;br /&gt;
		&lt;br /&gt;
     int[] hilfsarr = new int[a.length];&lt;br /&gt;
		&lt;br /&gt;
     doMergesort(a, hilfsarr, 0, a.length-1);&lt;br /&gt;
&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void doMergesort(int[] a, int[] hilfsarr, int links, int rechts){&lt;br /&gt;
	&lt;br /&gt;
     // Überprüfung, ob der linke Index kleiner als der rechte Index ist, ansonsten ist das Array sortiert	&lt;br /&gt;
     if ( links &amp;lt; rechts){&lt;br /&gt;
&lt;br /&gt;
          // Emittlung des Index des Elements, welches die Mitte ist&lt;br /&gt;
          int mitte = links + (rechts - links) / 2;&lt;br /&gt;
&lt;br /&gt;
          // Sortiere die linke Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, links, mitte);&lt;br /&gt;
          &lt;br /&gt;
          // Sortiere die rechts Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, mitte + 1, rechts);&lt;br /&gt;
          &lt;br /&gt;
          // &amp;quot;Verschmelze&amp;quot; (engl. merge) die beiden sortierten Hälten&lt;br /&gt;
          merge(a, hilfsarr, links, mitte, rechts);&lt;br /&gt;
          &lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void merge(int[] a, int[] hilfsarr, int links, int mitte, int rechts){&lt;br /&gt;
		&lt;br /&gt;
     // Kopiere linke und rechte Hälfte in ein Hilfsarray&lt;br /&gt;
     for (int i = links; i &amp;lt;= rechts; i++){&lt;br /&gt;
          hilfsarr[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     int i = links;&lt;br /&gt;
     int j = mitte + 1;&lt;br /&gt;
     int k = links;&lt;br /&gt;
     &lt;br /&gt;
     // Kopiere die kleinsten Werte entweder von der linken Seite oder vom der rechten Seite zurück in das Ursprungsarray	&lt;br /&gt;
     while (i &amp;lt;= mitte &amp;amp;&amp;amp; j &amp;lt;= rechts) {&lt;br /&gt;
          if (hilfsarr[i] &amp;lt;= hilfsarr[j]){&lt;br /&gt;
               a[k] = hilfsarr[i];&lt;br /&gt;
               i++;&lt;br /&gt;
          }&lt;br /&gt;
          else {&lt;br /&gt;
               a[k] = hilfsarr[j];&lt;br /&gt;
               j++;&lt;br /&gt;
               }&lt;br /&gt;
               k++;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     // Kopiere den Rest der linken Seite in das Ursprungsarray		&lt;br /&gt;
     while (i &amp;lt;= mitte){&lt;br /&gt;
          a[k] = hilfsarr[i];&lt;br /&gt;
          k++;&lt;br /&gt;
          i++;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Feld vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilfelder, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilfelder werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Feld in Teilfelder der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilfelder und damit das ganze Feld. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1488</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1488"/>
				<updated>2016-06-10T10:00:33Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Mergesort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des Feldes zu bewegen. Somit besteht das Ende des Feldes immer aus einem sortierten Teilfeld. Nach $n$ Durchläufen ist damit das Feld vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void bubbleSort(int[] A){&lt;br /&gt;
     for( int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
          for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
               if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
               int swap = A[i];&lt;br /&gt;
               A[i] = A[i+1];&lt;br /&gt;
               A[i+1] = swap;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Feld sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Feldes dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Feldern viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void Insertionsort(int[] A) {&lt;br /&gt;
     for (int i = 0; i &amp;lt; A.length-1; i++){&lt;br /&gt;
          for (int j = i+1; j &amp;lt; A.length; j++){&lt;br /&gt;
               if (A[i] &amp;gt; A[j]){&lt;br /&gt;
                    int swap = A[i];&lt;br /&gt;
                    A[i] = A[j];&lt;br /&gt;
                    A[j] = A[i];&lt;br /&gt;
                    }&lt;br /&gt;
               }&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void Mergesort(int[] a){&lt;br /&gt;
		&lt;br /&gt;
     int[] hilfsarr = new int[a.length];&lt;br /&gt;
		&lt;br /&gt;
     doMergesort(a, hilfsarr, 0, a.length-1);&lt;br /&gt;
&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void doMergesort(int[] a, int[] hilfsarr, int links, int rechts){&lt;br /&gt;
	&lt;br /&gt;
     // Überprüfung, ob der linke Index kleiner als der rechte Index ist, ansonsten ist das Array sortiert	&lt;br /&gt;
     if ( links &amp;lt; rechts){&lt;br /&gt;
&lt;br /&gt;
          // Emittlung des Index des Elements, welches die Mitte ist&lt;br /&gt;
          int mitte = links + (rechts - links) / 2;&lt;br /&gt;
&lt;br /&gt;
          // Sortiere die linke Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, links, mitte);&lt;br /&gt;
          &lt;br /&gt;
          // Sortiere die rechts Hälfte&lt;br /&gt;
          doMergesort(a, hilfsarr, mitte + 1, rechts);&lt;br /&gt;
          &lt;br /&gt;
          // &amp;quot;Verschmelze&amp;quot; (engl. merge) die beiden sortierten Hälten&lt;br /&gt;
          merge(a, hilfsarr, links, mitte, rechts);&lt;br /&gt;
          &lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
private static void merge(int[] a, int[] hilfsarr, int links, int mitte, int rechts){&lt;br /&gt;
		&lt;br /&gt;
     // Kopiere linke und rechte Hälfte in ein Hilfsarray&lt;br /&gt;
     for (int i = links; i &amp;lt;= rechts; i++){&lt;br /&gt;
          hilfsarr[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     int i = links;&lt;br /&gt;
     int j = mitte + 1;&lt;br /&gt;
     int k = links;&lt;br /&gt;
     &lt;br /&gt;
     // Kopiere die kleinsten Werte entweder von der linken Seite oder vom der rechten Seite zurück in das Ursprungsarray	&lt;br /&gt;
     while (i &amp;lt;= mitte &amp;amp;&amp;amp; j &amp;lt;= rechts) {&lt;br /&gt;
          if (hilfsarr[i] &amp;lt;= hilfsarr[j]){&lt;br /&gt;
               a[k] = hilfsarr[i];&lt;br /&gt;
               i++;&lt;br /&gt;
          }&lt;br /&gt;
          else {&lt;br /&gt;
               a[k] = hilfsarr[j];&lt;br /&gt;
               j++;&lt;br /&gt;
               }&lt;br /&gt;
               k++;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
     // Kopiere den Rest der linken Seite in das Ursprungsarray		&lt;br /&gt;
     while (i &amp;lt;= mitte){&lt;br /&gt;
          a[k] = hilfsarr[i];&lt;br /&gt;
          k++;&lt;br /&gt;
          i++;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Feld vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilfelder, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilfelder werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Feld in Teilfelder der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilfelder und damit das ganze Feld. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1458</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1458"/>
				<updated>2016-06-08T16:04:26Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Insertionsort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des Feldes zu bewegen. Somit besteht das Ende des Feldes immer aus einem sortierten Teilfeld. Nach $n$ Durchläufen ist damit das Feld vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void bubbleSort(int[] A){&lt;br /&gt;
     for( int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
          for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
               if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
               int swap = A[i];&lt;br /&gt;
               A[i] = A[i+1];&lt;br /&gt;
               A[i+1] = swap;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Feld sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Feldes dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Feldern viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void Insertionsort(int[] A) {&lt;br /&gt;
     for (int i = 0; i &amp;lt; A.length-1; i++){&lt;br /&gt;
          for (int j = i+1; j &amp;lt; A.length; j++){&lt;br /&gt;
               if (A[i] &amp;gt; A[j]){&lt;br /&gt;
                    int swap = A[i];&lt;br /&gt;
                    A[i] = A[j];&lt;br /&gt;
                    A[j] = A[i];&lt;br /&gt;
                    }&lt;br /&gt;
               }&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void sort(int[] a){&lt;br /&gt;
       if( a.length &amp;gt; 1) {&lt;br /&gt;
          int mitte = arry.length / 2;&lt;br /&gt;
&lt;br /&gt;
          int[] links = new int[mitte];&lt;br /&gt;
          for (int i = 0; i &amp;lt;= links.length - 1; i++) {&lt;br /&gt;
               links[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          int[] rechts = new int[a.length - mitte];&lt;br /&gt;
          for (int i = mitte; i &amp;lt;= a.length - 1; i++) {&lt;br /&gt;
               rechts[i - mitte] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          sort(links);&lt;br /&gt;
          sort(rechts);&lt;br /&gt;
&lt;br /&gt;
          a = merge(links, rechts);&lt;br /&gt;
       }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public static int[] merge(int[] links, int[] rechts){&lt;br /&gt;
       int[] ErgArray = new int[links.length + rechts.length];&lt;br /&gt;
       int indexLinks = 0,&lt;br /&gt;
           indexRechts = 0,&lt;br /&gt;
           indexErg = 0;&lt;br /&gt;
&lt;br /&gt;
       while (indexLinks &amp;lt; links.length &amp;amp;&amp;amp; indexRechts &amp;lt; rechts.length) {&lt;br /&gt;
             if (links[indexLinks] &amp;lt; rechts[indexRechts]) {&lt;br /&gt;
                 ErgArray[indexErg] = links[indexLinks];&lt;br /&gt;
                 indexLinks++;&lt;br /&gt;
             } else {&lt;br /&gt;
                   ErgArray[indexErg] = rechts[indexRechts];&lt;br /&gt;
                   indexRechts++;&lt;br /&gt;
             }&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       while (indexLinks &amp;lt; links.length) {&lt;br /&gt;
             ErgArray[indexerg] = rechts[indexRechts];&lt;br /&gt;
             indexRechts++;&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       while (indexRechts &amp;lt; rechts.length) {&lt;br /&gt;
             ErgArray[indexErg] = rechts[indexRechts];&lt;br /&gt;
             indexRechts++;&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       return ErgArray;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Feld vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilfelder, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilfelder werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Feld in Teilfelder der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilfelder und damit das ganze Feld. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1457</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1457"/>
				<updated>2016-06-08T16:00:00Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Bubblesort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des Feldes zu bewegen. Somit besteht das Ende des Feldes immer aus einem sortierten Teilfeld. Nach $n$ Durchläufen ist damit das Feld vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void bubbleSort(int[] A){&lt;br /&gt;
     for( int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
          for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
               if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
               int swap = A[i];&lt;br /&gt;
               A[i] = A[i+1];&lt;br /&gt;
               A[i+1] = swap;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Feld sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Feldes dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Feldern viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Insertionsort(int[] A)&lt;br /&gt;
for (int i = 1; i &amp;lt; A.length; i++){&lt;br /&gt;
    int insort = A[i];&lt;br /&gt;
    int j = i;&lt;br /&gt;
    while (j &amp;gt; 1 &amp;amp;&amp;amp; A[i-j] &amp;gt; insort){&lt;br /&gt;
          A[j] = A[j-1];&lt;br /&gt;
          j--;&lt;br /&gt;
          }&lt;br /&gt;
    A[j] = insort;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void sort(int[] a){&lt;br /&gt;
       if( a.length &amp;gt; 1) {&lt;br /&gt;
          int mitte = arry.length / 2;&lt;br /&gt;
&lt;br /&gt;
          int[] links = new int[mitte];&lt;br /&gt;
          for (int i = 0; i &amp;lt;= links.length - 1; i++) {&lt;br /&gt;
               links[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          int[] rechts = new int[a.length - mitte];&lt;br /&gt;
          for (int i = mitte; i &amp;lt;= a.length - 1; i++) {&lt;br /&gt;
               rechts[i - mitte] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          sort(links);&lt;br /&gt;
          sort(rechts);&lt;br /&gt;
&lt;br /&gt;
          a = merge(links, rechts);&lt;br /&gt;
       }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public static int[] merge(int[] links, int[] rechts){&lt;br /&gt;
       int[] ErgArray = new int[links.length + rechts.length];&lt;br /&gt;
       int indexLinks = 0,&lt;br /&gt;
           indexRechts = 0,&lt;br /&gt;
           indexErg = 0;&lt;br /&gt;
&lt;br /&gt;
       while (indexLinks &amp;lt; links.length &amp;amp;&amp;amp; indexRechts &amp;lt; rechts.length) {&lt;br /&gt;
             if (links[indexLinks] &amp;lt; rechts[indexRechts]) {&lt;br /&gt;
                 ErgArray[indexErg] = links[indexLinks];&lt;br /&gt;
                 indexLinks++;&lt;br /&gt;
             } else {&lt;br /&gt;
                   ErgArray[indexErg] = rechts[indexRechts];&lt;br /&gt;
                   indexRechts++;&lt;br /&gt;
             }&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       while (indexLinks &amp;lt; links.length) {&lt;br /&gt;
             ErgArray[indexerg] = rechts[indexRechts];&lt;br /&gt;
             indexRechts++;&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       while (indexRechts &amp;lt; rechts.length) {&lt;br /&gt;
             ErgArray[indexErg] = rechts[indexRechts];&lt;br /&gt;
             indexRechts++;&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       return ErgArray;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Feld vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilfelder, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilfelder werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Feld in Teilfelder der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilfelder und damit das ganze Feld. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1456</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1456"/>
				<updated>2016-06-08T15:59:30Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Bubblesort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des Feldes zu bewegen. Somit besteht das Ende des Feldes immer aus einem sortierten Teilfeld. Nach $n$ Durchläufen ist damit das Feld vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void bubbleSort(int[] A){&lt;br /&gt;
     for(int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
          for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
               if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
               int swap = A[i];&lt;br /&gt;
               A[i] = A[i+1];&lt;br /&gt;
               A[i+1] = swap;&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Feld sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Feldes dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Feldern viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Insertionsort(int[] A)&lt;br /&gt;
for (int i = 1; i &amp;lt; A.length; i++){&lt;br /&gt;
    int insort = A[i];&lt;br /&gt;
    int j = i;&lt;br /&gt;
    while (j &amp;gt; 1 &amp;amp;&amp;amp; A[i-j] &amp;gt; insort){&lt;br /&gt;
          A[j] = A[j-1];&lt;br /&gt;
          j--;&lt;br /&gt;
          }&lt;br /&gt;
    A[j] = insort;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void sort(int[] a){&lt;br /&gt;
       if( a.length &amp;gt; 1) {&lt;br /&gt;
          int mitte = arry.length / 2;&lt;br /&gt;
&lt;br /&gt;
          int[] links = new int[mitte];&lt;br /&gt;
          for (int i = 0; i &amp;lt;= links.length - 1; i++) {&lt;br /&gt;
               links[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          int[] rechts = new int[a.length - mitte];&lt;br /&gt;
          for (int i = mitte; i &amp;lt;= a.length - 1; i++) {&lt;br /&gt;
               rechts[i - mitte] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          sort(links);&lt;br /&gt;
          sort(rechts);&lt;br /&gt;
&lt;br /&gt;
          a = merge(links, rechts);&lt;br /&gt;
       }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public static int[] merge(int[] links, int[] rechts){&lt;br /&gt;
       int[] ErgArray = new int[links.length + rechts.length];&lt;br /&gt;
       int indexLinks = 0,&lt;br /&gt;
           indexRechts = 0,&lt;br /&gt;
           indexErg = 0;&lt;br /&gt;
&lt;br /&gt;
       while (indexLinks &amp;lt; links.length &amp;amp;&amp;amp; indexRechts &amp;lt; rechts.length) {&lt;br /&gt;
             if (links[indexLinks] &amp;lt; rechts[indexRechts]) {&lt;br /&gt;
                 ErgArray[indexErg] = links[indexLinks];&lt;br /&gt;
                 indexLinks++;&lt;br /&gt;
             } else {&lt;br /&gt;
                   ErgArray[indexErg] = rechts[indexRechts];&lt;br /&gt;
                   indexRechts++;&lt;br /&gt;
             }&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       while (indexLinks &amp;lt; links.length) {&lt;br /&gt;
             ErgArray[indexerg] = rechts[indexRechts];&lt;br /&gt;
             indexRechts++;&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       while (indexRechts &amp;lt; rechts.length) {&lt;br /&gt;
             ErgArray[indexErg] = rechts[indexRechts];&lt;br /&gt;
             indexRechts++;&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       return ErgArray;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Feld vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilfelder, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilfelder werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Feld in Teilfelder der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilfelder und damit das ganze Feld. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1455</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1455"/>
				<updated>2016-06-08T15:58:25Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Heapsort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das '''Sortieren''' ist ein Standardproblem der Informatik.&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das '''Bubblesort'''-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des Feldes zu bewegen. Somit besteht das Ende des Feldes immer aus einem sortierten Teilfeld. Nach $n$ Durchläufen ist damit das Feld vollständig sortiert. Bei diesem Verfahren wird in jedem Schritt jedes Element mindestens ein Mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
bubbleSort(int[] A){&lt;br /&gt;
for(int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
    for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
        if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
           int swap = A[i];&lt;br /&gt;
           A[i] = A[i+1];&lt;br /&gt;
           A[i+1] = swap;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im '''Heapsort''' wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten [[Heap]] das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Feld sortieren. Das Wiederherstellen eines Heaps geht relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
     generateMaxHeap(a);&lt;br /&gt;
	        &lt;br /&gt;
     for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
          tausche(a, 0, i);&lt;br /&gt;
          heapify(a, 0, i-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
private static void generateMaxHeap(int[] a) {&lt;br /&gt;
     for(int i = (a.length / 2); i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length-1);&lt;br /&gt;
          }&lt;br /&gt;
     }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	 &lt;br /&gt;
private static void heapify(int[] a, int aktKnoten, int anzahlKnoten) {&lt;br /&gt;
	      &lt;br /&gt;
     int lsNr = 2*aktKnoten+1,    //Nummer des linken Sohns&lt;br /&gt;
     rsNr = lsNr+1,  //Nummer des rechten Sohns&lt;br /&gt;
     selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
	 &lt;br /&gt;
     if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
          if (a[lsNr] &amp;lt; a[aktKnoten]) {&lt;br /&gt;
               tausche(a, lsNr, aktKnoten);&lt;br /&gt;
	       }&lt;br /&gt;
	  }&lt;br /&gt;
	  else {&lt;br /&gt;
	       if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
	            selSohn = (a[lsNr] &amp;lt; a[rsNr] ? lsNr : rsNr);&lt;br /&gt;
	            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
	            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
	 &lt;br /&gt;
	            if (a[selSohn] &amp;lt; a[aktKnoten]) {  //Heap-Bedingung verletzt&lt;br /&gt;
	                 tausche(a, aktKnoten, selSohn);&lt;br /&gt;
	                 heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
	                 }&lt;br /&gt;
	            }&lt;br /&gt;
	       }&lt;br /&gt;
     }&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
private static void tausche(int[] a, int i, int j){&lt;br /&gt;
     int swap = a[i];&lt;br /&gt;
     a[i] = a[j];&lt;br /&gt;
     a[j] = swap;&lt;br /&gt;
     }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim '''Insertionsort''' (Einfügesortieren) wird versucht, ein Element in der passenden Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Feldes dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Feldern viel Aufwand während der Verschiebung erfordert, bieten sich [[Liste]]n zur Implementierung hier besser an. Damit kann das Einfügen an eine gewisse Position viel einfacher erfolgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Insertionsort(int[] A)&lt;br /&gt;
for (int i = 1; i &amp;lt; A.length; i++){&lt;br /&gt;
    int insort = A[i];&lt;br /&gt;
    int j = i;&lt;br /&gt;
    while (j &amp;gt; 1 &amp;amp;&amp;amp; A[i-j] &amp;gt; insort){&lt;br /&gt;
          A[j] = A[j-1];&lt;br /&gt;
          j--;&lt;br /&gt;
          }&lt;br /&gt;
    A[j] = insort;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines [[Teile und herrsche]]-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void sort(int[] a){&lt;br /&gt;
       if( a.length &amp;gt; 1) {&lt;br /&gt;
          int mitte = arry.length / 2;&lt;br /&gt;
&lt;br /&gt;
          int[] links = new int[mitte];&lt;br /&gt;
          for (int i = 0; i &amp;lt;= links.length - 1; i++) {&lt;br /&gt;
               links[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          int[] rechts = new int[a.length - mitte];&lt;br /&gt;
          for (int i = mitte; i &amp;lt;= a.length - 1; i++) {&lt;br /&gt;
               rechts[i - mitte] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          sort(links);&lt;br /&gt;
          sort(rechts);&lt;br /&gt;
&lt;br /&gt;
          a = merge(links, rechts);&lt;br /&gt;
       }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public static int[] merge(int[] links, int[] rechts){&lt;br /&gt;
       int[] ErgArray = new int[links.length + rechts.length];&lt;br /&gt;
       int indexLinks = 0,&lt;br /&gt;
           indexRechts = 0,&lt;br /&gt;
           indexErg = 0;&lt;br /&gt;
&lt;br /&gt;
       while (indexLinks &amp;lt; links.length &amp;amp;&amp;amp; indexRechts &amp;lt; rechts.length) {&lt;br /&gt;
             if (links[indexLinks] &amp;lt; rechts[indexRechts]) {&lt;br /&gt;
                 ErgArray[indexErg] = links[indexLinks];&lt;br /&gt;
                 indexLinks++;&lt;br /&gt;
             } else {&lt;br /&gt;
                   ErgArray[indexErg] = rechts[indexRechts];&lt;br /&gt;
                   indexRechts++;&lt;br /&gt;
             }&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       while (indexLinks &amp;lt; links.length) {&lt;br /&gt;
             ErgArray[indexerg] = rechts[indexRechts];&lt;br /&gt;
             indexRechts++;&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       while (indexRechts &amp;lt; rechts.length) {&lt;br /&gt;
             ErgArray[indexErg] = rechts[indexRechts];&lt;br /&gt;
             indexRechts++;&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       return ErgArray;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
'''Quicksort''' ist das zweite übliche Beispiel für '''Teile und Herrsche-Sortieralgorithmen'''. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Feld vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größeren rechts davon. Damit hat man zwei Teilfelder, die selbst nicht sortiert sind. Also wird rekursiv nach demselben Muster vorgegangen: Die beiden kleineren Teilfelder werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Feld in Teilfelder der Größe 1 aufgeteilt wurde. Diese sind alle sortiert, somit auch die größeren Teilfelder und damit das ganze Feld. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1387</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1387"/>
				<updated>2016-05-22T17:50:51Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Heapsort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Sortieren ist ein Standardproblem der Informatik&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das Bubblesort-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des Feldes zu bewegen. Somit besteht das Ende des Feldes immer aus einem sortierten Teilfeld. Nach $n$ Durchläufen ist damit das Feld insbesondere vollständig sortiert. Jedoch wird bei diesem Verfahren in jedem Schritt jedes Element mindestens ein mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
bubbleSort(int[] A){&lt;br /&gt;
for(int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
    for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
        if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
           int swap = A[i];&lt;br /&gt;
           A[i] = A[i+1];&lt;br /&gt;
           A[i+1] = swap;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Heapsort wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten Heap das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Feld sortieren. Das wiederherstellen eines Heaps geht dabei relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
       generateMaxHeap(a);&lt;br /&gt;
       for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
           tausche(a, i, 0);&lt;br /&gt;
           heapify(a, 0, i);&lt;br /&gt;
       }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public static void generateMaxHeap(int[] a) {&lt;br /&gt;
       for(int i = (a.length / 2) - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length);&lt;br /&gt;
       }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public static void heapify(int[] a, int k, int anzahlKnoten) {&lt;br /&gt;
       int lsNr = 2*k,    //Nummer des linken Sohns&lt;br /&gt;
           rsNr = 2*k+1,  //Nummer des rechten Sohns&lt;br /&gt;
           selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
&lt;br /&gt;
       if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
           if (heapFeld[lsNr] &amp;lt; heapFeld[k] {&lt;br /&gt;
               tausche(a, k, lsNr);&lt;br /&gt;
           }&lt;br /&gt;
       }&lt;br /&gt;
       else if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
            selSohn = (heapFeld[lsNr] &amp;lt; heapFeld[rsNr] ? lsNr : rsNr);&lt;br /&gt;
            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
&lt;br /&gt;
            if (heapFeld[selSohn] &amp;lt; heapFeld[k]) {  //Heap-Bedingung verletzt&lt;br /&gt;
                tausche(a, k, selSohn);&lt;br /&gt;
                heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
            }&lt;br /&gt;
       }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public static void tausche(int[] a, int i, int j){&lt;br /&gt;
       int swap = a[i];&lt;br /&gt;
       a[i] = a[j];&lt;br /&gt;
       a[j] = swap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim Insertionsort (Einfügesortieren) wird versucht, ein Element an die passende Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Feldes dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Feldern viel Aufwand während der Veschiebung erfordert, bieten sich Listen zur Implementierung hier besser an, da das Einfügen an eine gewisse Position viel einfacher erfolgen kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Insertionsort(int[] A)&lt;br /&gt;
for (int i = 1; i &amp;lt; A.length; i++){&lt;br /&gt;
    int insort = A[i];&lt;br /&gt;
    int j = i;&lt;br /&gt;
    while (j &amp;gt; 1 &amp;amp;&amp;amp; A[i-j] &amp;gt; insort){&lt;br /&gt;
          A[j] = A[j-1];&lt;br /&gt;
          j--;&lt;br /&gt;
          }&lt;br /&gt;
    A[j] = insort;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines Teile und Herrsche Algorithmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void sort(int[] a){&lt;br /&gt;
       if( a.length &amp;gt; 1) {&lt;br /&gt;
          int mitte = arry.length / 2;&lt;br /&gt;
&lt;br /&gt;
          int[] links = new int[mitte];&lt;br /&gt;
          for (int i = 0; i &amp;lt;= links.length - 1; i++) {&lt;br /&gt;
               links[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          int[] rechts = new int[a.length - mitte];&lt;br /&gt;
          for (int i = mitte; i &amp;lt;= a.length - 1; i++) {&lt;br /&gt;
               rechts[i - mitte] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          sort(links);&lt;br /&gt;
          sort(rechts);&lt;br /&gt;
&lt;br /&gt;
          a = merge(links, rechts);&lt;br /&gt;
       }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public static int[] merge(int[] links, int[] rechts){&lt;br /&gt;
       int[] ErgArray = new int[links.length + rechts.length];&lt;br /&gt;
       int indexLinks = 0,&lt;br /&gt;
           indexRechts = 0,&lt;br /&gt;
           indexErg = 0;&lt;br /&gt;
&lt;br /&gt;
       while (indexLinks &amp;lt; links.length &amp;amp;&amp;amp; indexRechts &amp;lt; rechts.length) {&lt;br /&gt;
             if (links[indexLinks] &amp;lt; rechts[indexRechts]) {&lt;br /&gt;
                 ErgArray[indexErg] = links[indexLinks];&lt;br /&gt;
                 indexLinks++;&lt;br /&gt;
             } else {&lt;br /&gt;
                   ErgArray[indexErg] = rechts[indexRechts];&lt;br /&gt;
                   indexRechts++;&lt;br /&gt;
             }&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       while (indexLinks &amp;lt; links.length) {&lt;br /&gt;
             ErgArray[indexerg] = rechts[indexRechts];&lt;br /&gt;
             indexRechts++;&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       while (indexRechts &amp;lt; rechts.length) {&lt;br /&gt;
             ErgArray[indexErg] = rechts[indexRechts];&lt;br /&gt;
             indexRechts++;&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       return ErgArray;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
Quicksort ist das zweite übliche Beispiel für Teile und Herrsche Sortieralgorithmen. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Feld vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größer rechts davon. Damit hat man zwei Teilfelder, die selbst nicht sortiert sind, aber wenn sie sortiert wären, wäre auch das Gesamtfeld sortiert. Also geht man rekursiv nach dem selben Muster vor. Die beiden kleineren Teilfelder werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Feld in Teilfelder der größe 1 aufgeteilt wurde. Diese sind jedoch alle sortiert, also auch die größeren Teilfelder, also das ganze Feld. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1386</id>
		<title>Sortieren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Sortieren&amp;diff=1386"/>
				<updated>2016-05-22T17:50:23Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Heapsort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Sortieren ist ein Standardproblem der Informatik&lt;br /&gt;
&lt;br /&gt;
=Sortieralgoritmen=&lt;br /&gt;
&lt;br /&gt;
==Bubblesort==&lt;br /&gt;
&lt;br /&gt;
Das Bubblesort-Sortierverfahren versucht in jeder Iteration das größte Element an das Ende des Feldes zu bewegen. Somit besteht das Ende des Feldes immer aus einem sortierten Teilfeld. Nach $n$ Durchläufen ist damit das Feld insbesondere vollständig sortiert. Jedoch wird bei diesem Verfahren in jedem Schritt jedes Element mindestens ein mal mit einem anderen verglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
bubbleSort(int[] A){&lt;br /&gt;
for(int n = A.length; n &amp;gt; 1; n--) {&lt;br /&gt;
    for (int i = 0; i &amp;lt; n-1; i++) {&lt;br /&gt;
        if (A[i] &amp;gt; A[i+1]){&lt;br /&gt;
           int swap = A[i];&lt;br /&gt;
           A[i] = A[i+1];&lt;br /&gt;
           A[i+1] = swap;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Heapsort==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Heapsort wird sich die Eigenschaft zu Nutze gemacht, dass in einem korrekten Heap das kleinste Element immer in der Wurzel des Heaps steht. Wird dieses entfernt und im neuen Baum die Heapstruktur wiederhergestellt, lässt sich das Feld sortieren. Das wiederherstellen eines Heaps geht dabei relativ schnell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void heapSort(int[] a) {&lt;br /&gt;
       generateMaxHeap(a);&lt;br /&gt;
       for( int i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
           tausche(a, i, 0);&lt;br /&gt;
           heapify(a, 0, i);&lt;br /&gt;
       }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public static void generateMaxHeap(int[] a) {&lt;br /&gt;
       for(int i = (a.length / 2) - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
          heapify(a, i, a.length);&lt;br /&gt;
       }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public static void heapify(int[] a, int k, int anzahlKnoten) {&lt;br /&gt;
       int lsNR = 2*k,    //Nummer des linken Sohns&lt;br /&gt;
           rsNR = 2*k+1,  //Nummer des rechten Sohns&lt;br /&gt;
           selSohn;       //Nummer des selektierten Sohns&lt;br /&gt;
&lt;br /&gt;
       if (lsNr &amp;lt;= anzahlKnoten &amp;amp;&amp;amp; rsNr &amp;gt; anzahlKnoten) { //es gibt keinen rechten Sohn&lt;br /&gt;
           if (heapFeld[lsNr] &amp;lt; heapFeld[k] {&lt;br /&gt;
               tausche(a, k, lsNr);&lt;br /&gt;
           }&lt;br /&gt;
       }&lt;br /&gt;
       else if (rsNr &amp;lt;= anzahlKnoten) {&lt;br /&gt;
            selSohn = (heapFeld[lsNr] &amp;lt; heapFeld[rsNr] ? lsNr : rsNr);&lt;br /&gt;
            // Wähle den Sohn mit der kleineren Markierung aus.&lt;br /&gt;
            // Bei Gleichheit wähle den rechten Sohn.&lt;br /&gt;
&lt;br /&gt;
            if (heapFeld[selSohn] &amp;lt; heapFeld[k]) {  //Heap-Bedingung verletzt&lt;br /&gt;
                tausche(a, k, selSohn);&lt;br /&gt;
                heapify(a, selSohn, anzahlKnoten);&lt;br /&gt;
            }&lt;br /&gt;
       }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public static void tausche(int[] a, int i, int j){&lt;br /&gt;
       int swap = a[i];&lt;br /&gt;
       a[i] = a[j];&lt;br /&gt;
       a[j] = swap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insertionsort==&lt;br /&gt;
&lt;br /&gt;
Beim Insertionsort (Einfügesortieren) wird versucht, ein Element an die passende Stelle eines bereits sortierten Teilfeldes ''einzufügen'' und den Rest des Feldes dabei zu &amp;quot;verschieben&amp;quot;. Da dieses Verfahren bei Feldern viel Aufwand während der Veschiebung erfordert, bieten sich Listen zur Implementierung hier besser an, da das Einfügen an eine gewisse Position viel einfacher erfolgen kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
Insertionsort(int[] A)&lt;br /&gt;
for (int i = 1; i &amp;lt; A.length; i++){&lt;br /&gt;
    int insort = A[i];&lt;br /&gt;
    int j = i;&lt;br /&gt;
    while (j &amp;gt; 1 &amp;amp;&amp;amp; A[i-j] &amp;gt; insort){&lt;br /&gt;
          A[j] = A[j-1];&lt;br /&gt;
          j--;&lt;br /&gt;
          }&lt;br /&gt;
    A[j] = insort;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mergesort==&lt;br /&gt;
&lt;br /&gt;
Mergesort ist das klassische Beispiel eines Teile und Herrsche Algorithmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void sort(int[] a){&lt;br /&gt;
       if( a.length &amp;gt; 1) {&lt;br /&gt;
          int mitte = arry.length / 2;&lt;br /&gt;
&lt;br /&gt;
          int[] links = new int[mitte];&lt;br /&gt;
          for (int i = 0; i &amp;lt;= links.length - 1; i++) {&lt;br /&gt;
               links[i] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          int[] rechts = new int[a.length - mitte];&lt;br /&gt;
          for (int i = mitte; i &amp;lt;= a.length - 1; i++) {&lt;br /&gt;
               rechts[i - mitte] = a[i];&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          sort(links);&lt;br /&gt;
          sort(rechts);&lt;br /&gt;
&lt;br /&gt;
          a = merge(links, rechts);&lt;br /&gt;
       }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public static int[] merge(int[] links, int[] rechts){&lt;br /&gt;
       int[] ErgArray = new int[links.length + rechts.length];&lt;br /&gt;
       int indexLinks = 0,&lt;br /&gt;
           indexRechts = 0,&lt;br /&gt;
           indexErg = 0;&lt;br /&gt;
&lt;br /&gt;
       while (indexLinks &amp;lt; links.length &amp;amp;&amp;amp; indexRechts &amp;lt; rechts.length) {&lt;br /&gt;
             if (links[indexLinks] &amp;lt; rechts[indexRechts]) {&lt;br /&gt;
                 ErgArray[indexErg] = links[indexLinks];&lt;br /&gt;
                 indexLinks++;&lt;br /&gt;
             } else {&lt;br /&gt;
                   ErgArray[indexErg] = rechts[indexRechts];&lt;br /&gt;
                   indexRechts++;&lt;br /&gt;
             }&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       while (indexLinks &amp;lt; links.length) {&lt;br /&gt;
             ErgArray[indexerg] = rechts[indexRechts];&lt;br /&gt;
             indexRechts++;&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       while (indexRechts &amp;lt; rechts.length) {&lt;br /&gt;
             ErgArray[indexErg] = rechts[indexRechts];&lt;br /&gt;
             indexRechts++;&lt;br /&gt;
             indexErg++;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       return ErgArray;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Quicksort==&lt;br /&gt;
&lt;br /&gt;
Quicksort ist das zweite übliche Beispiel für Teile und Herrsche Sortieralgorithmen. In ihm wird anhand eines arbiträr (willkürlich) gewählten Wertes (meistens das mittlere) das Feld vorsortiert: Alle Elemente kleiner als das gewählte Element werden links davon einsortiert, alle größer rechts davon. Damit hat man zwei Teilfelder, die selbst nicht sortiert sind, aber wenn sie sortiert wären, wäre auch das Gesamtfeld sortiert. Also geht man rekursiv nach dem selben Muster vor. Die beiden kleineren Teilfelder werden wieder arbiträr nach einem Element aufgeteilt und in zwei grob sortierte Teilstrukturen aufgeteilt. Dies geschieht so lange, bis das Feld in Teilfelder der größe 1 aufgeteilt wurde. Diese sind jedoch alle sortiert, also auch die größeren Teilfelder, also das ganze Feld. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void quicksort(int[] arr, int links, int rechts) {&lt;br /&gt;
       if (arr == null || arr.length == 0) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;gt;= rechts) {&lt;br /&gt;
           return;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       int mitte = links + (rechts - links) / 2;&lt;br /&gt;
       int pivot = arr[middle];&lt;br /&gt;
       int i = links, j = rechts;&lt;br /&gt;
&lt;br /&gt;
       while (i &amp;lt;= j) {&lt;br /&gt;
             while (arr[i] &amp;lt; pivot) {&lt;br /&gt;
                   i++;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             while (arr[j] &amp;gt; pivot) {&lt;br /&gt;
                   j--;&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
             if (i &amp;lt;= j) {&lt;br /&gt;
                 int swap = arr[i];&lt;br /&gt;
                 arr[i] = arr[j];&lt;br /&gt;
                 arr[j] = swap;&lt;br /&gt;
                 i++;&lt;br /&gt;
                 j--;&lt;br /&gt;
             }&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (links &amp;lt; j){&lt;br /&gt;
           quickSort(arr, low, j);&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       if (rechts &amp;gt; i){&lt;br /&gt;
           quickSort(arr, i, rechts);&lt;br /&gt;
       }&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1302</id>
		<title>Glossar (alphabetisch)</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1302"/>
				<updated>2016-05-08T16:05:56Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''!! alphabetisch einsortiert, verlinken !!''&lt;br /&gt;
&lt;br /&gt;
=A=&lt;br /&gt;
&lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[abstrakte Klasse]]&lt;br /&gt;
*[[abstrakte Methode]]&lt;br /&gt;
*[[Abstraktion]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Algemeinheit]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[ASCII]]&lt;br /&gt;
*[[Attritbut]]&lt;br /&gt;
*[[Aufwand]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[AVL-Baum]]&lt;br /&gt;
&lt;br /&gt;
=B=&lt;br /&gt;
&lt;br /&gt;
*balancierter Baum&lt;br /&gt;
*Bäume&lt;br /&gt;
*Bedeutung Gleichzeichen&lt;br /&gt;
*bedingte Anweisung&lt;br /&gt;
*Bedingung&lt;br /&gt;
*Betriebssystem&lt;br /&gt;
*binärer Baum&lt;br /&gt;
*binärer Suchbaum&lt;br /&gt;
*Binärzahlen&lt;br /&gt;
*Bit&lt;br /&gt;
*Bitfolge&lt;br /&gt;
*Blatt&lt;br /&gt;
*Block&lt;br /&gt;
*Boolean&lt;br /&gt;
*Bool'sche Algebra&lt;br /&gt;
*break&lt;br /&gt;
*Breitendurchlauf&lt;br /&gt;
*Byte&lt;br /&gt;
*Byte (Javadatentyp)&lt;br /&gt;
&lt;br /&gt;
=C=&lt;br /&gt;
&lt;br /&gt;
*call by reference&lt;br /&gt;
*call by value&lt;br /&gt;
*Char&lt;br /&gt;
*Computer&lt;br /&gt;
*Compiler&lt;br /&gt;
*continue&lt;br /&gt;
*CPU&lt;br /&gt;
&lt;br /&gt;
=D=&lt;br /&gt;
&lt;br /&gt;
*Darstellung ganzer Zahlen&lt;br /&gt;
*Darstellung natürlicher Zahlen&lt;br /&gt;
*Datenstruktur&lt;br /&gt;
*Datentyp&lt;br /&gt;
*Datenverarbeitung&lt;br /&gt;
*Deklaration&lt;br /&gt;
*denotationale Semantik&lt;br /&gt;
*Determiniertheit&lt;br /&gt;
*Determinismus&lt;br /&gt;
*Dimensierung&lt;br /&gt;
*doppeltverkettete Liste&lt;br /&gt;
*Double&lt;br /&gt;
*do-while-Schleife&lt;br /&gt;
*Dynamische Datenstruktur&lt;br /&gt;
&lt;br /&gt;
=E=&lt;br /&gt;
&lt;br /&gt;
*E-/A-Medien&lt;br /&gt;
*Effizienz&lt;br /&gt;
*Ein- und Ausgabe&lt;br /&gt;
*Einfache Grundoperationen&lt;br /&gt;
*Einfügen&lt;br /&gt;
*Einzelproblem&lt;br /&gt;
*Elementaroperationen&lt;br /&gt;
*Entwurfsmethodik&lt;br /&gt;
*extends&lt;br /&gt;
*externes Sortieren&lt;br /&gt;
&lt;br /&gt;
=F=&lt;br /&gt;
&lt;br /&gt;
*Festpunktzahlen&lt;br /&gt;
*final&lt;br /&gt;
*Float&lt;br /&gt;
*for-Schleife&lt;br /&gt;
*Funktion&lt;br /&gt;
*Funktionale Programmierung&lt;br /&gt;
*funktionslokal&lt;br /&gt;
&lt;br /&gt;
=G=&lt;br /&gt;
&lt;br /&gt;
*gerichteter Graph&lt;br /&gt;
*ggt nach Euklid&lt;br /&gt;
*Gleitpunktzahl&lt;br /&gt;
*globale Variablen&lt;br /&gt;
*Graph&lt;br /&gt;
&lt;br /&gt;
=H=&lt;br /&gt;
&lt;br /&gt;
*Hardware&lt;br /&gt;
*Heap&lt;br /&gt;
*Heapify&lt;br /&gt;
*Heapsort&lt;br /&gt;
*Hexadezimalzahlen&lt;br /&gt;
&lt;br /&gt;
=I=&lt;br /&gt;
&lt;br /&gt;
*Imperative Programmierung&lt;br /&gt;
*Implizite Typanpassung&lt;br /&gt;
*Informatik&lt;br /&gt;
*Informationsverarbeitung&lt;br /&gt;
*inorder-Durchlauf&lt;br /&gt;
*Initialisierung&lt;br /&gt;
*Instanz&lt;br /&gt;
*Integer&lt;br /&gt;
*Interface&lt;br /&gt;
*Internes Sortieren&lt;br /&gt;
*Interpretation&lt;br /&gt;
*Iteration&lt;br /&gt;
&lt;br /&gt;
=J=&lt;br /&gt;
&lt;br /&gt;
*Java&lt;br /&gt;
*Java-Programm&lt;br /&gt;
&lt;br /&gt;
=K=&lt;br /&gt;
&lt;br /&gt;
*Klasse&lt;br /&gt;
*Klassenatribute/-methoden&lt;br /&gt;
*Klassendefinition&lt;br /&gt;
*Knoten&lt;br /&gt;
*Kommunikation über Parameter&lt;br /&gt;
*Kommunikationsprotokoll&lt;br /&gt;
*Konstante&lt;br /&gt;
*konstruierter, komplexer Datentyp&lt;br /&gt;
*Konstruktor&lt;br /&gt;
*Kontrollstruktur&lt;br /&gt;
*Kreuzprodukt&lt;br /&gt;
*Kurzformen&lt;br /&gt;
&lt;br /&gt;
=L=&lt;br /&gt;
&lt;br /&gt;
*Laufvariable&lt;br /&gt;
*lineare Liste&lt;br /&gt;
*Liste&lt;br /&gt;
*Logische Programmierung&lt;br /&gt;
*Long&lt;br /&gt;
&lt;br /&gt;
=M=&lt;br /&gt;
&lt;br /&gt;
*main-Methode&lt;br /&gt;
*Maschinensprache&lt;br /&gt;
*Mengen&lt;br /&gt;
*Methode&lt;br /&gt;
*Methodendefinition&lt;br /&gt;
&lt;br /&gt;
=N=&lt;br /&gt;
&lt;br /&gt;
*Nachbedingung&lt;br /&gt;
*Nebenläufiger Algorithmus&lt;br /&gt;
*new-Operator&lt;br /&gt;
*Nibble&lt;br /&gt;
*null&lt;br /&gt;
*Numerik&lt;br /&gt;
&lt;br /&gt;
=O=&lt;br /&gt;
&lt;br /&gt;
*O-Notation&lt;br /&gt;
*Objekt&lt;br /&gt;
*Objektorientierte Programmierung&lt;br /&gt;
*Operation&lt;br /&gt;
*operationale Semantik&lt;br /&gt;
&lt;br /&gt;
=P=&lt;br /&gt;
&lt;br /&gt;
*Parallele Ausführung&lt;br /&gt;
*Parameter&lt;br /&gt;
*Parameterübergabe&lt;br /&gt;
*Polymorphie&lt;br /&gt;
*postorder&lt;br /&gt;
*preorder&lt;br /&gt;
*Primitive Datentypen&lt;br /&gt;
*Priotitäten von Operatoren&lt;br /&gt;
*private&lt;br /&gt;
*Problembeschreibung&lt;br /&gt;
*Problemklasse&lt;br /&gt;
*Programm&lt;br /&gt;
*Programmierparadigma&lt;br /&gt;
*Programmiersprache&lt;br /&gt;
*Programmierung&lt;br /&gt;
*protected&lt;br /&gt;
*Prozedur&lt;br /&gt;
*prozedurale (funkt.) Abstraktion&lt;br /&gt;
*Pseudocode&lt;br /&gt;
*public&lt;br /&gt;
*Punkt-Operator&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
&lt;br /&gt;
*Quelltext/-code&lt;br /&gt;
&lt;br /&gt;
=R=&lt;br /&gt;
&lt;br /&gt;
*Rastergrafik&lt;br /&gt;
*Raumkomplexität&lt;br /&gt;
*Rechensysteme&lt;br /&gt;
*Rechner&lt;br /&gt;
*Referenzen&lt;br /&gt;
*Rekursive Funktion&lt;br /&gt;
*Relation&lt;br /&gt;
*Repräsentation (von Daten)&lt;br /&gt;
*Robustheit&lt;br /&gt;
*Rückgabe&lt;br /&gt;
*Rückgabewert&lt;br /&gt;
&lt;br /&gt;
=S=&lt;br /&gt;
&lt;br /&gt;
*Schlangen (queue)&lt;br /&gt;
*Schleife&lt;br /&gt;
*Schlüsselwörter&lt;br /&gt;
*Semantik&lt;br /&gt;
*Sequentieller Algorithmus&lt;br /&gt;
*Sequenz&lt;br /&gt;
*Short&lt;br /&gt;
*Software&lt;br /&gt;
*Sortieralgorithmen&lt;br /&gt;
*Sortieren&lt;br /&gt;
*Speicher&lt;br /&gt;
*Speicheraddresse&lt;br /&gt;
*Spezialisierung&lt;br /&gt;
*Spezifikation&lt;br /&gt;
*Stack&lt;br /&gt;
*Standardformate&lt;br /&gt;
*Steuerzeichen&lt;br /&gt;
*Streng getypte Sprache&lt;br /&gt;
*String&lt;br /&gt;
*Subklasse&lt;br /&gt;
*Suchen&lt;br /&gt;
*Superklasse&lt;br /&gt;
*switch&lt;br /&gt;
*Syntax&lt;br /&gt;
*Syntaxdiagramm&lt;br /&gt;
&lt;br /&gt;
=T=&lt;br /&gt;
&lt;br /&gt;
*Teile und herrsche&lt;br /&gt;
*Terminierung&lt;br /&gt;
*Terminierungsbedingung&lt;br /&gt;
*Testklasse&lt;br /&gt;
*Texte (Darstellung)&lt;br /&gt;
*this&lt;br /&gt;
*Tiefendurchlauf&lt;br /&gt;
*top-down Entwurf&lt;br /&gt;
*Türme von Hanoi&lt;br /&gt;
*Typkomplexität&lt;br /&gt;
&lt;br /&gt;
=U=&lt;br /&gt;
&lt;br /&gt;
*Umrechnungsverfahren&lt;br /&gt;
*ungerichtete Graphen&lt;br /&gt;
*Unicode&lt;br /&gt;
*Unterprogramm&lt;br /&gt;
&lt;br /&gt;
=V=&lt;br /&gt;
&lt;br /&gt;
*Variable&lt;br /&gt;
*Variablenparameter&lt;br /&gt;
*Vektor / Matrix&lt;br /&gt;
*Vektorgrafik&lt;br /&gt;
*verbale Semantik&lt;br /&gt;
*Verebung&lt;br /&gt;
*Vererbungshierarchie&lt;br /&gt;
*Verifikation (bzgl. Klassen)&lt;br /&gt;
*Verschmelzen&lt;br /&gt;
*Verwaltungsinformation&lt;br /&gt;
*Virtuelle Maschine&lt;br /&gt;
*Vollständige Induktion&lt;br /&gt;
*Vorbedignung&lt;br /&gt;
*Vorgehensweise (Erstellung eines Programms)&lt;br /&gt;
*Vorzeichenbetragszahlen&lt;br /&gt;
&lt;br /&gt;
=W=&lt;br /&gt;
&lt;br /&gt;
*Wert&lt;br /&gt;
*Werteparameter&lt;br /&gt;
*while-Schleife&lt;br /&gt;
*Wurzel&lt;br /&gt;
&lt;br /&gt;
=X=&lt;br /&gt;
&lt;br /&gt;
=Y=&lt;br /&gt;
&lt;br /&gt;
=Z=&lt;br /&gt;
&lt;br /&gt;
*Zeitkomplexität&lt;br /&gt;
*Zuweisung&lt;br /&gt;
*Zuweisung (Array)&lt;br /&gt;
*Zweierkomplement&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1301</id>
		<title>Glossar (alphabetisch)</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1301"/>
				<updated>2016-05-08T16:04:54Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* K */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''!! Nur einsortiert, teilweise alphabetisch!!''&lt;br /&gt;
&lt;br /&gt;
=A=&lt;br /&gt;
&lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[abstrakte Klasse]]&lt;br /&gt;
*[[abstrakte Methode]]&lt;br /&gt;
*[[Abstraktion]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Algemeinheit]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[ASCII]]&lt;br /&gt;
*[[Attritbut]]&lt;br /&gt;
*[[Aufwand]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[AVL-Baum]]&lt;br /&gt;
&lt;br /&gt;
=B=&lt;br /&gt;
&lt;br /&gt;
*balancierter Baum&lt;br /&gt;
*Bäume&lt;br /&gt;
*Bedeutung Gleichzeichen&lt;br /&gt;
*bedingte Anweisung&lt;br /&gt;
*Bedingung&lt;br /&gt;
*Betriebssystem&lt;br /&gt;
*binärer Baum&lt;br /&gt;
*binärer Suchbaum&lt;br /&gt;
*Binärzahlen&lt;br /&gt;
*Bit&lt;br /&gt;
*Bitfolge&lt;br /&gt;
*Blatt&lt;br /&gt;
*Block&lt;br /&gt;
*Boolean&lt;br /&gt;
*Bool'sche Algebra&lt;br /&gt;
*break&lt;br /&gt;
*Breitendurchlauf&lt;br /&gt;
*Byte&lt;br /&gt;
*Byte (Javadatentyp)&lt;br /&gt;
&lt;br /&gt;
=C=&lt;br /&gt;
&lt;br /&gt;
*call by reference&lt;br /&gt;
*call by value&lt;br /&gt;
*Char&lt;br /&gt;
*Computer&lt;br /&gt;
*Compiler&lt;br /&gt;
*continue&lt;br /&gt;
*CPU&lt;br /&gt;
&lt;br /&gt;
=D=&lt;br /&gt;
&lt;br /&gt;
*Darstellung ganzer Zahlen&lt;br /&gt;
*Darstellung natürlicher Zahlen&lt;br /&gt;
*Datenstruktur&lt;br /&gt;
*Datentyp&lt;br /&gt;
*Datenverarbeitung&lt;br /&gt;
*Deklaration&lt;br /&gt;
*denotationale Semantik&lt;br /&gt;
*Determiniertheit&lt;br /&gt;
*Determinismus&lt;br /&gt;
*Dimensierung&lt;br /&gt;
*doppeltverkettete Liste&lt;br /&gt;
*Double&lt;br /&gt;
*do-while-Schleife&lt;br /&gt;
*Dynamische Datenstruktur&lt;br /&gt;
&lt;br /&gt;
=E=&lt;br /&gt;
&lt;br /&gt;
*E-/A-Medien&lt;br /&gt;
*Effizienz&lt;br /&gt;
*Ein- und Ausgabe&lt;br /&gt;
*Einfache Grundoperationen&lt;br /&gt;
*Einfügen&lt;br /&gt;
*Einzelproblem&lt;br /&gt;
*Elementaroperationen&lt;br /&gt;
*Entwurfsmethodik&lt;br /&gt;
*extends&lt;br /&gt;
*externes Sortieren&lt;br /&gt;
&lt;br /&gt;
=F=&lt;br /&gt;
&lt;br /&gt;
*Festpunktzahlen&lt;br /&gt;
*final&lt;br /&gt;
*Float&lt;br /&gt;
*for-Schleife&lt;br /&gt;
*Funktion&lt;br /&gt;
*Funktionale Programmierung&lt;br /&gt;
*funktionslokal&lt;br /&gt;
&lt;br /&gt;
=G=&lt;br /&gt;
&lt;br /&gt;
*gerichteter Graph&lt;br /&gt;
*ggt nach Euklid&lt;br /&gt;
*Gleitpunktzahl&lt;br /&gt;
*globale Variablen&lt;br /&gt;
*Graph&lt;br /&gt;
&lt;br /&gt;
=H=&lt;br /&gt;
&lt;br /&gt;
*Hardware&lt;br /&gt;
*Heap&lt;br /&gt;
*Heapify&lt;br /&gt;
*Heapsort&lt;br /&gt;
*Hexadezimalzahlen&lt;br /&gt;
&lt;br /&gt;
=I=&lt;br /&gt;
&lt;br /&gt;
*Imperative Programmierung&lt;br /&gt;
*Implizite Typanpassung&lt;br /&gt;
*Informatik&lt;br /&gt;
*Informationsverarbeitung&lt;br /&gt;
*inorder-Durchlauf&lt;br /&gt;
*Initialisierung&lt;br /&gt;
*Instanz&lt;br /&gt;
*Integer&lt;br /&gt;
*Interface&lt;br /&gt;
*Internes Sortieren&lt;br /&gt;
*Interpretation&lt;br /&gt;
*Iteration&lt;br /&gt;
&lt;br /&gt;
=J=&lt;br /&gt;
&lt;br /&gt;
*Java&lt;br /&gt;
*Java-Programm&lt;br /&gt;
&lt;br /&gt;
=K=&lt;br /&gt;
&lt;br /&gt;
*Klasse&lt;br /&gt;
*Klassenatribute/-methoden&lt;br /&gt;
*Klassendefinition&lt;br /&gt;
*Knoten&lt;br /&gt;
*Kommunikation über Parameter&lt;br /&gt;
*Kommunikationsprotokoll&lt;br /&gt;
*Konstante&lt;br /&gt;
*konstruierter, komplexer Datentyp&lt;br /&gt;
*Konstruktor&lt;br /&gt;
*Kontrollstruktur&lt;br /&gt;
*Kreuzprodukt&lt;br /&gt;
*Kurzformen&lt;br /&gt;
&lt;br /&gt;
=L=&lt;br /&gt;
&lt;br /&gt;
*Laufvariable&lt;br /&gt;
*lineare Liste&lt;br /&gt;
*Liste&lt;br /&gt;
*Logische Programmierung&lt;br /&gt;
*Long&lt;br /&gt;
&lt;br /&gt;
=M=&lt;br /&gt;
&lt;br /&gt;
*main-Methode&lt;br /&gt;
*Maschinensprache&lt;br /&gt;
*Mengen&lt;br /&gt;
*Methode&lt;br /&gt;
*Methodendefinition&lt;br /&gt;
&lt;br /&gt;
=N=&lt;br /&gt;
&lt;br /&gt;
*Nachbedingung&lt;br /&gt;
*Nebenläufiger Algorithmus&lt;br /&gt;
*new-Operator&lt;br /&gt;
*Nibble&lt;br /&gt;
*null&lt;br /&gt;
*Numerik&lt;br /&gt;
&lt;br /&gt;
=O=&lt;br /&gt;
&lt;br /&gt;
*O-Notation&lt;br /&gt;
*Objekt&lt;br /&gt;
*Objektorientierte Programmierung&lt;br /&gt;
*Operation&lt;br /&gt;
*operationale Semantik&lt;br /&gt;
&lt;br /&gt;
=P=&lt;br /&gt;
&lt;br /&gt;
*Parallele Ausführung&lt;br /&gt;
*Parameter&lt;br /&gt;
*Parameterübergabe&lt;br /&gt;
*Polymorphie&lt;br /&gt;
*postorder&lt;br /&gt;
*preorder&lt;br /&gt;
*Primitive Datentypen&lt;br /&gt;
*Priotitäten von Operatoren&lt;br /&gt;
*private&lt;br /&gt;
*Problembeschreibung&lt;br /&gt;
*Problemklasse&lt;br /&gt;
*Programm&lt;br /&gt;
*Programmierparadigma&lt;br /&gt;
*Programmiersprache&lt;br /&gt;
*Programmierung&lt;br /&gt;
*protected&lt;br /&gt;
*Prozedur&lt;br /&gt;
*prozedurale (funkt.) Abstraktion&lt;br /&gt;
*Pseudocode&lt;br /&gt;
*public&lt;br /&gt;
*Punkt-Operator&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
&lt;br /&gt;
*Quelltext/-code&lt;br /&gt;
&lt;br /&gt;
=R=&lt;br /&gt;
&lt;br /&gt;
*Rastergrafik&lt;br /&gt;
*Raumkomplexität&lt;br /&gt;
*Rechensysteme&lt;br /&gt;
*Rechner&lt;br /&gt;
*Referenzen&lt;br /&gt;
*Rekursive Funktion&lt;br /&gt;
*Relation&lt;br /&gt;
*Repräsentation (von Daten)&lt;br /&gt;
*Robustheit&lt;br /&gt;
*Rückgabe&lt;br /&gt;
*Rückgabewert&lt;br /&gt;
&lt;br /&gt;
=S=&lt;br /&gt;
&lt;br /&gt;
*Schlangen (queue)&lt;br /&gt;
*Schleife&lt;br /&gt;
*Schlüsselwörter&lt;br /&gt;
*Semantik&lt;br /&gt;
*Sequentieller Algorithmus&lt;br /&gt;
*Sequenz&lt;br /&gt;
*Short&lt;br /&gt;
*Software&lt;br /&gt;
*Sortieralgorithmen&lt;br /&gt;
*Sortieren&lt;br /&gt;
*Speicher&lt;br /&gt;
*Speicheraddresse&lt;br /&gt;
*Spezialisierung&lt;br /&gt;
*Spezifikation&lt;br /&gt;
*Stack&lt;br /&gt;
*Standardformate&lt;br /&gt;
*Steuerzeichen&lt;br /&gt;
*Streng getypte Sprache&lt;br /&gt;
*String&lt;br /&gt;
*Subklasse&lt;br /&gt;
*Suchen&lt;br /&gt;
*Superklasse&lt;br /&gt;
*switch&lt;br /&gt;
*Syntax&lt;br /&gt;
*Syntaxdiagramm&lt;br /&gt;
&lt;br /&gt;
=T=&lt;br /&gt;
&lt;br /&gt;
*Teile und herrsche&lt;br /&gt;
*Terminierung&lt;br /&gt;
*Terminierungsbedingung&lt;br /&gt;
*Testklasse&lt;br /&gt;
*Texte (Darstellung)&lt;br /&gt;
*this&lt;br /&gt;
*Tiefendurchlauf&lt;br /&gt;
*top-down Entwurf&lt;br /&gt;
*Türme von Hanoi&lt;br /&gt;
*Typkomplexität&lt;br /&gt;
&lt;br /&gt;
=U=&lt;br /&gt;
&lt;br /&gt;
*Umrechnungsverfahren&lt;br /&gt;
*ungerichtete Graphen&lt;br /&gt;
*Unicode&lt;br /&gt;
*Unterprogramm&lt;br /&gt;
&lt;br /&gt;
=V=&lt;br /&gt;
&lt;br /&gt;
*Variable&lt;br /&gt;
*Variablenparameter&lt;br /&gt;
*Vektor / Matrix&lt;br /&gt;
*Vektorgrafik&lt;br /&gt;
*verbale Semantik&lt;br /&gt;
*Verebung&lt;br /&gt;
*Vererbungshierarchie&lt;br /&gt;
*Verifikation (bzgl. Klassen)&lt;br /&gt;
*Verschmelzen&lt;br /&gt;
*Verwaltungsinformation&lt;br /&gt;
*Virtuelle Maschine&lt;br /&gt;
*Vollständige Induktion&lt;br /&gt;
*Vorbedignung&lt;br /&gt;
*Vorgehensweise (Erstellung eines Programms)&lt;br /&gt;
*Vorzeichenbetragszahlen&lt;br /&gt;
&lt;br /&gt;
=W=&lt;br /&gt;
&lt;br /&gt;
*Wert&lt;br /&gt;
*Werteparameter&lt;br /&gt;
*while-Schleife&lt;br /&gt;
*Wurzel&lt;br /&gt;
&lt;br /&gt;
=X=&lt;br /&gt;
&lt;br /&gt;
=Y=&lt;br /&gt;
&lt;br /&gt;
=Z=&lt;br /&gt;
&lt;br /&gt;
*Zeitkomplexität&lt;br /&gt;
*Zuweisung&lt;br /&gt;
*Zuweisung (Array)&lt;br /&gt;
*Zweierkomplement&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1300</id>
		<title>Glossar (alphabetisch)</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1300"/>
				<updated>2016-05-08T16:03:16Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* V */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''!! Nur einsortiert, teilweise alphabetisch!!''&lt;br /&gt;
&lt;br /&gt;
=A=&lt;br /&gt;
&lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[abstrakte Klasse]]&lt;br /&gt;
*[[abstrakte Methode]]&lt;br /&gt;
*[[Abstraktion]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Algemeinheit]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[ASCII]]&lt;br /&gt;
*[[Attritbut]]&lt;br /&gt;
*[[Aufwand]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[AVL-Baum]]&lt;br /&gt;
&lt;br /&gt;
=B=&lt;br /&gt;
&lt;br /&gt;
*balancierter Baum&lt;br /&gt;
*Bäume&lt;br /&gt;
*Bedeutung Gleichzeichen&lt;br /&gt;
*bedingte Anweisung&lt;br /&gt;
*Bedingung&lt;br /&gt;
*Betriebssystem&lt;br /&gt;
*binärer Baum&lt;br /&gt;
*binärer Suchbaum&lt;br /&gt;
*Binärzahlen&lt;br /&gt;
*Bit&lt;br /&gt;
*Bitfolge&lt;br /&gt;
*Blatt&lt;br /&gt;
*Block&lt;br /&gt;
*Boolean&lt;br /&gt;
*Bool'sche Algebra&lt;br /&gt;
*break&lt;br /&gt;
*Breitendurchlauf&lt;br /&gt;
*Byte&lt;br /&gt;
*Byte (Javadatentyp)&lt;br /&gt;
&lt;br /&gt;
=C=&lt;br /&gt;
&lt;br /&gt;
*call by reference&lt;br /&gt;
*call by value&lt;br /&gt;
*Char&lt;br /&gt;
*Computer&lt;br /&gt;
*Compiler&lt;br /&gt;
*continue&lt;br /&gt;
*CPU&lt;br /&gt;
&lt;br /&gt;
=D=&lt;br /&gt;
&lt;br /&gt;
*Darstellung ganzer Zahlen&lt;br /&gt;
*Darstellung natürlicher Zahlen&lt;br /&gt;
*Datenstruktur&lt;br /&gt;
*Datentyp&lt;br /&gt;
*Datenverarbeitung&lt;br /&gt;
*Deklaration&lt;br /&gt;
*denotationale Semantik&lt;br /&gt;
*Determiniertheit&lt;br /&gt;
*Determinismus&lt;br /&gt;
*Dimensierung&lt;br /&gt;
*doppeltverkettete Liste&lt;br /&gt;
*Double&lt;br /&gt;
*do-while-Schleife&lt;br /&gt;
*Dynamische Datenstruktur&lt;br /&gt;
&lt;br /&gt;
=E=&lt;br /&gt;
&lt;br /&gt;
*E-/A-Medien&lt;br /&gt;
*Effizienz&lt;br /&gt;
*Ein- und Ausgabe&lt;br /&gt;
*Einfache Grundoperationen&lt;br /&gt;
*Einfügen&lt;br /&gt;
*Einzelproblem&lt;br /&gt;
*Elementaroperationen&lt;br /&gt;
*Entwurfsmethodik&lt;br /&gt;
*extends&lt;br /&gt;
*externes Sortieren&lt;br /&gt;
&lt;br /&gt;
=F=&lt;br /&gt;
&lt;br /&gt;
*Festpunktzahlen&lt;br /&gt;
*final&lt;br /&gt;
*Float&lt;br /&gt;
*for-Schleife&lt;br /&gt;
*Funktion&lt;br /&gt;
*Funktionale Programmierung&lt;br /&gt;
*funktionslokal&lt;br /&gt;
&lt;br /&gt;
=G=&lt;br /&gt;
&lt;br /&gt;
*gerichteter Graph&lt;br /&gt;
*ggt nach Euklid&lt;br /&gt;
*Gleitpunktzahl&lt;br /&gt;
*globale Variablen&lt;br /&gt;
*Graph&lt;br /&gt;
&lt;br /&gt;
=H=&lt;br /&gt;
&lt;br /&gt;
*Hardware&lt;br /&gt;
*Heap&lt;br /&gt;
*Heapify&lt;br /&gt;
*Heapsort&lt;br /&gt;
*Hexadezimalzahlen&lt;br /&gt;
&lt;br /&gt;
=I=&lt;br /&gt;
&lt;br /&gt;
*Imperative Programmierung&lt;br /&gt;
*Implizite Typanpassung&lt;br /&gt;
*Informatik&lt;br /&gt;
*Informationsverarbeitung&lt;br /&gt;
*inorder-Durchlauf&lt;br /&gt;
*Initialisierung&lt;br /&gt;
*Instanz&lt;br /&gt;
*Integer&lt;br /&gt;
*Interface&lt;br /&gt;
*Internes Sortieren&lt;br /&gt;
*Interpretation&lt;br /&gt;
*Iteration&lt;br /&gt;
&lt;br /&gt;
=J=&lt;br /&gt;
&lt;br /&gt;
*Java&lt;br /&gt;
*Java-Programm&lt;br /&gt;
&lt;br /&gt;
=K=&lt;br /&gt;
&lt;br /&gt;
*Kommunikationsprotokoll&lt;br /&gt;
*Kreuzprodukt&lt;br /&gt;
*Kurzformen&lt;br /&gt;
*konstruierter, komplexer Datentyp&lt;br /&gt;
*Konstante&lt;br /&gt;
*Kontrollstruktur&lt;br /&gt;
*Kommunikation über Parameter&lt;br /&gt;
*Klasse&lt;br /&gt;
*Klassendefinition&lt;br /&gt;
*Konstruktor&lt;br /&gt;
*Klassenatribute/-methoden&lt;br /&gt;
*Knoten&lt;br /&gt;
&lt;br /&gt;
=L=&lt;br /&gt;
&lt;br /&gt;
*Laufvariable&lt;br /&gt;
*lineare Liste&lt;br /&gt;
*Liste&lt;br /&gt;
*Logische Programmierung&lt;br /&gt;
*Long&lt;br /&gt;
&lt;br /&gt;
=M=&lt;br /&gt;
&lt;br /&gt;
*main-Methode&lt;br /&gt;
*Maschinensprache&lt;br /&gt;
*Mengen&lt;br /&gt;
*Methode&lt;br /&gt;
*Methodendefinition&lt;br /&gt;
&lt;br /&gt;
=N=&lt;br /&gt;
&lt;br /&gt;
*Nachbedingung&lt;br /&gt;
*Nebenläufiger Algorithmus&lt;br /&gt;
*new-Operator&lt;br /&gt;
*Nibble&lt;br /&gt;
*null&lt;br /&gt;
*Numerik&lt;br /&gt;
&lt;br /&gt;
=O=&lt;br /&gt;
&lt;br /&gt;
*O-Notation&lt;br /&gt;
*Objekt&lt;br /&gt;
*Objektorientierte Programmierung&lt;br /&gt;
*Operation&lt;br /&gt;
*operationale Semantik&lt;br /&gt;
&lt;br /&gt;
=P=&lt;br /&gt;
&lt;br /&gt;
*Parallele Ausführung&lt;br /&gt;
*Parameter&lt;br /&gt;
*Parameterübergabe&lt;br /&gt;
*Polymorphie&lt;br /&gt;
*postorder&lt;br /&gt;
*preorder&lt;br /&gt;
*Primitive Datentypen&lt;br /&gt;
*Priotitäten von Operatoren&lt;br /&gt;
*private&lt;br /&gt;
*Problembeschreibung&lt;br /&gt;
*Problemklasse&lt;br /&gt;
*Programm&lt;br /&gt;
*Programmierparadigma&lt;br /&gt;
*Programmiersprache&lt;br /&gt;
*Programmierung&lt;br /&gt;
*protected&lt;br /&gt;
*Prozedur&lt;br /&gt;
*prozedurale (funkt.) Abstraktion&lt;br /&gt;
*Pseudocode&lt;br /&gt;
*public&lt;br /&gt;
*Punkt-Operator&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
&lt;br /&gt;
*Quelltext/-code&lt;br /&gt;
&lt;br /&gt;
=R=&lt;br /&gt;
&lt;br /&gt;
*Rastergrafik&lt;br /&gt;
*Raumkomplexität&lt;br /&gt;
*Rechensysteme&lt;br /&gt;
*Rechner&lt;br /&gt;
*Referenzen&lt;br /&gt;
*Rekursive Funktion&lt;br /&gt;
*Relation&lt;br /&gt;
*Repräsentation (von Daten)&lt;br /&gt;
*Robustheit&lt;br /&gt;
*Rückgabe&lt;br /&gt;
*Rückgabewert&lt;br /&gt;
&lt;br /&gt;
=S=&lt;br /&gt;
&lt;br /&gt;
*Schlangen (queue)&lt;br /&gt;
*Schleife&lt;br /&gt;
*Schlüsselwörter&lt;br /&gt;
*Semantik&lt;br /&gt;
*Sequentieller Algorithmus&lt;br /&gt;
*Sequenz&lt;br /&gt;
*Short&lt;br /&gt;
*Software&lt;br /&gt;
*Sortieralgorithmen&lt;br /&gt;
*Sortieren&lt;br /&gt;
*Speicher&lt;br /&gt;
*Speicheraddresse&lt;br /&gt;
*Spezialisierung&lt;br /&gt;
*Spezifikation&lt;br /&gt;
*Stack&lt;br /&gt;
*Standardformate&lt;br /&gt;
*Steuerzeichen&lt;br /&gt;
*Streng getypte Sprache&lt;br /&gt;
*String&lt;br /&gt;
*Subklasse&lt;br /&gt;
*Suchen&lt;br /&gt;
*Superklasse&lt;br /&gt;
*switch&lt;br /&gt;
*Syntax&lt;br /&gt;
*Syntaxdiagramm&lt;br /&gt;
&lt;br /&gt;
=T=&lt;br /&gt;
&lt;br /&gt;
*Teile und herrsche&lt;br /&gt;
*Terminierung&lt;br /&gt;
*Terminierungsbedingung&lt;br /&gt;
*Testklasse&lt;br /&gt;
*Texte (Darstellung)&lt;br /&gt;
*this&lt;br /&gt;
*Tiefendurchlauf&lt;br /&gt;
*top-down Entwurf&lt;br /&gt;
*Türme von Hanoi&lt;br /&gt;
*Typkomplexität&lt;br /&gt;
&lt;br /&gt;
=U=&lt;br /&gt;
&lt;br /&gt;
*Umrechnungsverfahren&lt;br /&gt;
*ungerichtete Graphen&lt;br /&gt;
*Unicode&lt;br /&gt;
*Unterprogramm&lt;br /&gt;
&lt;br /&gt;
=V=&lt;br /&gt;
&lt;br /&gt;
*Variable&lt;br /&gt;
*Variablenparameter&lt;br /&gt;
*Vektor / Matrix&lt;br /&gt;
*Vektorgrafik&lt;br /&gt;
*verbale Semantik&lt;br /&gt;
*Verebung&lt;br /&gt;
*Vererbungshierarchie&lt;br /&gt;
*Verifikation (bzgl. Klassen)&lt;br /&gt;
*Verschmelzen&lt;br /&gt;
*Verwaltungsinformation&lt;br /&gt;
*Virtuelle Maschine&lt;br /&gt;
*Vollständige Induktion&lt;br /&gt;
*Vorbedignung&lt;br /&gt;
*Vorgehensweise (Erstellung eines Programms)&lt;br /&gt;
*Vorzeichenbetragszahlen&lt;br /&gt;
&lt;br /&gt;
=W=&lt;br /&gt;
&lt;br /&gt;
*Wert&lt;br /&gt;
*Werteparameter&lt;br /&gt;
*while-Schleife&lt;br /&gt;
*Wurzel&lt;br /&gt;
&lt;br /&gt;
=X=&lt;br /&gt;
&lt;br /&gt;
=Y=&lt;br /&gt;
&lt;br /&gt;
=Z=&lt;br /&gt;
&lt;br /&gt;
*Zeitkomplexität&lt;br /&gt;
*Zuweisung&lt;br /&gt;
*Zuweisung (Array)&lt;br /&gt;
*Zweierkomplement&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1299</id>
		<title>Glossar (alphabetisch)</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1299"/>
				<updated>2016-05-08T16:01:24Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* T */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''!! Nur einsortiert, teilweise alphabetisch!!''&lt;br /&gt;
&lt;br /&gt;
=A=&lt;br /&gt;
&lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[abstrakte Klasse]]&lt;br /&gt;
*[[abstrakte Methode]]&lt;br /&gt;
*[[Abstraktion]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Algemeinheit]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[ASCII]]&lt;br /&gt;
*[[Attritbut]]&lt;br /&gt;
*[[Aufwand]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[AVL-Baum]]&lt;br /&gt;
&lt;br /&gt;
=B=&lt;br /&gt;
&lt;br /&gt;
*balancierter Baum&lt;br /&gt;
*Bäume&lt;br /&gt;
*Bedeutung Gleichzeichen&lt;br /&gt;
*bedingte Anweisung&lt;br /&gt;
*Bedingung&lt;br /&gt;
*Betriebssystem&lt;br /&gt;
*binärer Baum&lt;br /&gt;
*binärer Suchbaum&lt;br /&gt;
*Binärzahlen&lt;br /&gt;
*Bit&lt;br /&gt;
*Bitfolge&lt;br /&gt;
*Blatt&lt;br /&gt;
*Block&lt;br /&gt;
*Boolean&lt;br /&gt;
*Bool'sche Algebra&lt;br /&gt;
*break&lt;br /&gt;
*Breitendurchlauf&lt;br /&gt;
*Byte&lt;br /&gt;
*Byte (Javadatentyp)&lt;br /&gt;
&lt;br /&gt;
=C=&lt;br /&gt;
&lt;br /&gt;
*call by reference&lt;br /&gt;
*call by value&lt;br /&gt;
*Char&lt;br /&gt;
*Computer&lt;br /&gt;
*Compiler&lt;br /&gt;
*continue&lt;br /&gt;
*CPU&lt;br /&gt;
&lt;br /&gt;
=D=&lt;br /&gt;
&lt;br /&gt;
*Darstellung ganzer Zahlen&lt;br /&gt;
*Darstellung natürlicher Zahlen&lt;br /&gt;
*Datenstruktur&lt;br /&gt;
*Datentyp&lt;br /&gt;
*Datenverarbeitung&lt;br /&gt;
*Deklaration&lt;br /&gt;
*denotationale Semantik&lt;br /&gt;
*Determiniertheit&lt;br /&gt;
*Determinismus&lt;br /&gt;
*Dimensierung&lt;br /&gt;
*doppeltverkettete Liste&lt;br /&gt;
*Double&lt;br /&gt;
*do-while-Schleife&lt;br /&gt;
*Dynamische Datenstruktur&lt;br /&gt;
&lt;br /&gt;
=E=&lt;br /&gt;
&lt;br /&gt;
*E-/A-Medien&lt;br /&gt;
*Effizienz&lt;br /&gt;
*Ein- und Ausgabe&lt;br /&gt;
*Einfache Grundoperationen&lt;br /&gt;
*Einfügen&lt;br /&gt;
*Einzelproblem&lt;br /&gt;
*Elementaroperationen&lt;br /&gt;
*Entwurfsmethodik&lt;br /&gt;
*extends&lt;br /&gt;
*externes Sortieren&lt;br /&gt;
&lt;br /&gt;
=F=&lt;br /&gt;
&lt;br /&gt;
*Festpunktzahlen&lt;br /&gt;
*final&lt;br /&gt;
*Float&lt;br /&gt;
*for-Schleife&lt;br /&gt;
*Funktion&lt;br /&gt;
*Funktionale Programmierung&lt;br /&gt;
*funktionslokal&lt;br /&gt;
&lt;br /&gt;
=G=&lt;br /&gt;
&lt;br /&gt;
*gerichteter Graph&lt;br /&gt;
*ggt nach Euklid&lt;br /&gt;
*Gleitpunktzahl&lt;br /&gt;
*globale Variablen&lt;br /&gt;
*Graph&lt;br /&gt;
&lt;br /&gt;
=H=&lt;br /&gt;
&lt;br /&gt;
*Hardware&lt;br /&gt;
*Heap&lt;br /&gt;
*Heapify&lt;br /&gt;
*Heapsort&lt;br /&gt;
*Hexadezimalzahlen&lt;br /&gt;
&lt;br /&gt;
=I=&lt;br /&gt;
&lt;br /&gt;
*Imperative Programmierung&lt;br /&gt;
*Implizite Typanpassung&lt;br /&gt;
*Informatik&lt;br /&gt;
*Informationsverarbeitung&lt;br /&gt;
*inorder-Durchlauf&lt;br /&gt;
*Initialisierung&lt;br /&gt;
*Instanz&lt;br /&gt;
*Integer&lt;br /&gt;
*Interface&lt;br /&gt;
*Internes Sortieren&lt;br /&gt;
*Interpretation&lt;br /&gt;
*Iteration&lt;br /&gt;
&lt;br /&gt;
=J=&lt;br /&gt;
&lt;br /&gt;
*Java&lt;br /&gt;
*Java-Programm&lt;br /&gt;
&lt;br /&gt;
=K=&lt;br /&gt;
&lt;br /&gt;
*Kommunikationsprotokoll&lt;br /&gt;
*Kreuzprodukt&lt;br /&gt;
*Kurzformen&lt;br /&gt;
*konstruierter, komplexer Datentyp&lt;br /&gt;
*Konstante&lt;br /&gt;
*Kontrollstruktur&lt;br /&gt;
*Kommunikation über Parameter&lt;br /&gt;
*Klasse&lt;br /&gt;
*Klassendefinition&lt;br /&gt;
*Konstruktor&lt;br /&gt;
*Klassenatribute/-methoden&lt;br /&gt;
*Knoten&lt;br /&gt;
&lt;br /&gt;
=L=&lt;br /&gt;
&lt;br /&gt;
*Laufvariable&lt;br /&gt;
*lineare Liste&lt;br /&gt;
*Liste&lt;br /&gt;
*Logische Programmierung&lt;br /&gt;
*Long&lt;br /&gt;
&lt;br /&gt;
=M=&lt;br /&gt;
&lt;br /&gt;
*main-Methode&lt;br /&gt;
*Maschinensprache&lt;br /&gt;
*Mengen&lt;br /&gt;
*Methode&lt;br /&gt;
*Methodendefinition&lt;br /&gt;
&lt;br /&gt;
=N=&lt;br /&gt;
&lt;br /&gt;
*Nachbedingung&lt;br /&gt;
*Nebenläufiger Algorithmus&lt;br /&gt;
*new-Operator&lt;br /&gt;
*Nibble&lt;br /&gt;
*null&lt;br /&gt;
*Numerik&lt;br /&gt;
&lt;br /&gt;
=O=&lt;br /&gt;
&lt;br /&gt;
*O-Notation&lt;br /&gt;
*Objekt&lt;br /&gt;
*Objektorientierte Programmierung&lt;br /&gt;
*Operation&lt;br /&gt;
*operationale Semantik&lt;br /&gt;
&lt;br /&gt;
=P=&lt;br /&gt;
&lt;br /&gt;
*Parallele Ausführung&lt;br /&gt;
*Parameter&lt;br /&gt;
*Parameterübergabe&lt;br /&gt;
*Polymorphie&lt;br /&gt;
*postorder&lt;br /&gt;
*preorder&lt;br /&gt;
*Primitive Datentypen&lt;br /&gt;
*Priotitäten von Operatoren&lt;br /&gt;
*private&lt;br /&gt;
*Problembeschreibung&lt;br /&gt;
*Problemklasse&lt;br /&gt;
*Programm&lt;br /&gt;
*Programmierparadigma&lt;br /&gt;
*Programmiersprache&lt;br /&gt;
*Programmierung&lt;br /&gt;
*protected&lt;br /&gt;
*Prozedur&lt;br /&gt;
*prozedurale (funkt.) Abstraktion&lt;br /&gt;
*Pseudocode&lt;br /&gt;
*public&lt;br /&gt;
*Punkt-Operator&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
&lt;br /&gt;
*Quelltext/-code&lt;br /&gt;
&lt;br /&gt;
=R=&lt;br /&gt;
&lt;br /&gt;
*Rastergrafik&lt;br /&gt;
*Raumkomplexität&lt;br /&gt;
*Rechensysteme&lt;br /&gt;
*Rechner&lt;br /&gt;
*Referenzen&lt;br /&gt;
*Rekursive Funktion&lt;br /&gt;
*Relation&lt;br /&gt;
*Repräsentation (von Daten)&lt;br /&gt;
*Robustheit&lt;br /&gt;
*Rückgabe&lt;br /&gt;
*Rückgabewert&lt;br /&gt;
&lt;br /&gt;
=S=&lt;br /&gt;
&lt;br /&gt;
*Schlangen (queue)&lt;br /&gt;
*Schleife&lt;br /&gt;
*Schlüsselwörter&lt;br /&gt;
*Semantik&lt;br /&gt;
*Sequentieller Algorithmus&lt;br /&gt;
*Sequenz&lt;br /&gt;
*Short&lt;br /&gt;
*Software&lt;br /&gt;
*Sortieralgorithmen&lt;br /&gt;
*Sortieren&lt;br /&gt;
*Speicher&lt;br /&gt;
*Speicheraddresse&lt;br /&gt;
*Spezialisierung&lt;br /&gt;
*Spezifikation&lt;br /&gt;
*Stack&lt;br /&gt;
*Standardformate&lt;br /&gt;
*Steuerzeichen&lt;br /&gt;
*Streng getypte Sprache&lt;br /&gt;
*String&lt;br /&gt;
*Subklasse&lt;br /&gt;
*Suchen&lt;br /&gt;
*Superklasse&lt;br /&gt;
*switch&lt;br /&gt;
*Syntax&lt;br /&gt;
*Syntaxdiagramm&lt;br /&gt;
&lt;br /&gt;
=T=&lt;br /&gt;
&lt;br /&gt;
*Teile und herrsche&lt;br /&gt;
*Terminierung&lt;br /&gt;
*Terminierungsbedingung&lt;br /&gt;
*Testklasse&lt;br /&gt;
*Texte (Darstellung)&lt;br /&gt;
*this&lt;br /&gt;
*Tiefendurchlauf&lt;br /&gt;
*top-down Entwurf&lt;br /&gt;
*Türme von Hanoi&lt;br /&gt;
*Typkomplexität&lt;br /&gt;
&lt;br /&gt;
=U=&lt;br /&gt;
&lt;br /&gt;
*Umrechnungsverfahren&lt;br /&gt;
*ungerichtete Graphen&lt;br /&gt;
*Unicode&lt;br /&gt;
*Unterprogramm&lt;br /&gt;
&lt;br /&gt;
=V=&lt;br /&gt;
&lt;br /&gt;
*Verifikation (bzgl. Klassen)&lt;br /&gt;
*Virtuelle Maschine&lt;br /&gt;
*Vektorgrafik&lt;br /&gt;
*Vorzeichenbetragszahlen&lt;br /&gt;
*Vorgehensweise (Erstellung eines Programms)&lt;br /&gt;
*Vorbedignung&lt;br /&gt;
*verbale Semantik&lt;br /&gt;
*Variable&lt;br /&gt;
*Variablenparameter&lt;br /&gt;
*Verwaltungsinformation&lt;br /&gt;
*Vektor / Matrix&lt;br /&gt;
*Verschmelzen&lt;br /&gt;
*Verebung&lt;br /&gt;
*Vererbungshierarchie&lt;br /&gt;
*Vollständige Induktion&lt;br /&gt;
&lt;br /&gt;
=W=&lt;br /&gt;
&lt;br /&gt;
*Wert&lt;br /&gt;
*Werteparameter&lt;br /&gt;
*while-Schleife&lt;br /&gt;
*Wurzel&lt;br /&gt;
&lt;br /&gt;
=X=&lt;br /&gt;
&lt;br /&gt;
=Y=&lt;br /&gt;
&lt;br /&gt;
=Z=&lt;br /&gt;
&lt;br /&gt;
*Zeitkomplexität&lt;br /&gt;
*Zuweisung&lt;br /&gt;
*Zuweisung (Array)&lt;br /&gt;
*Zweierkomplement&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1298</id>
		<title>Glossar (alphabetisch)</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1298"/>
				<updated>2016-05-08T15:59:51Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* S */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''!! Nur einsortiert, teilweise alphabetisch!!''&lt;br /&gt;
&lt;br /&gt;
=A=&lt;br /&gt;
&lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[abstrakte Klasse]]&lt;br /&gt;
*[[abstrakte Methode]]&lt;br /&gt;
*[[Abstraktion]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Algemeinheit]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[ASCII]]&lt;br /&gt;
*[[Attritbut]]&lt;br /&gt;
*[[Aufwand]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[AVL-Baum]]&lt;br /&gt;
&lt;br /&gt;
=B=&lt;br /&gt;
&lt;br /&gt;
*balancierter Baum&lt;br /&gt;
*Bäume&lt;br /&gt;
*Bedeutung Gleichzeichen&lt;br /&gt;
*bedingte Anweisung&lt;br /&gt;
*Bedingung&lt;br /&gt;
*Betriebssystem&lt;br /&gt;
*binärer Baum&lt;br /&gt;
*binärer Suchbaum&lt;br /&gt;
*Binärzahlen&lt;br /&gt;
*Bit&lt;br /&gt;
*Bitfolge&lt;br /&gt;
*Blatt&lt;br /&gt;
*Block&lt;br /&gt;
*Boolean&lt;br /&gt;
*Bool'sche Algebra&lt;br /&gt;
*break&lt;br /&gt;
*Breitendurchlauf&lt;br /&gt;
*Byte&lt;br /&gt;
*Byte (Javadatentyp)&lt;br /&gt;
&lt;br /&gt;
=C=&lt;br /&gt;
&lt;br /&gt;
*call by reference&lt;br /&gt;
*call by value&lt;br /&gt;
*Char&lt;br /&gt;
*Computer&lt;br /&gt;
*Compiler&lt;br /&gt;
*continue&lt;br /&gt;
*CPU&lt;br /&gt;
&lt;br /&gt;
=D=&lt;br /&gt;
&lt;br /&gt;
*Darstellung ganzer Zahlen&lt;br /&gt;
*Darstellung natürlicher Zahlen&lt;br /&gt;
*Datenstruktur&lt;br /&gt;
*Datentyp&lt;br /&gt;
*Datenverarbeitung&lt;br /&gt;
*Deklaration&lt;br /&gt;
*denotationale Semantik&lt;br /&gt;
*Determiniertheit&lt;br /&gt;
*Determinismus&lt;br /&gt;
*Dimensierung&lt;br /&gt;
*doppeltverkettete Liste&lt;br /&gt;
*Double&lt;br /&gt;
*do-while-Schleife&lt;br /&gt;
*Dynamische Datenstruktur&lt;br /&gt;
&lt;br /&gt;
=E=&lt;br /&gt;
&lt;br /&gt;
*E-/A-Medien&lt;br /&gt;
*Effizienz&lt;br /&gt;
*Ein- und Ausgabe&lt;br /&gt;
*Einfache Grundoperationen&lt;br /&gt;
*Einfügen&lt;br /&gt;
*Einzelproblem&lt;br /&gt;
*Elementaroperationen&lt;br /&gt;
*Entwurfsmethodik&lt;br /&gt;
*extends&lt;br /&gt;
*externes Sortieren&lt;br /&gt;
&lt;br /&gt;
=F=&lt;br /&gt;
&lt;br /&gt;
*Festpunktzahlen&lt;br /&gt;
*final&lt;br /&gt;
*Float&lt;br /&gt;
*for-Schleife&lt;br /&gt;
*Funktion&lt;br /&gt;
*Funktionale Programmierung&lt;br /&gt;
*funktionslokal&lt;br /&gt;
&lt;br /&gt;
=G=&lt;br /&gt;
&lt;br /&gt;
*gerichteter Graph&lt;br /&gt;
*ggt nach Euklid&lt;br /&gt;
*Gleitpunktzahl&lt;br /&gt;
*globale Variablen&lt;br /&gt;
*Graph&lt;br /&gt;
&lt;br /&gt;
=H=&lt;br /&gt;
&lt;br /&gt;
*Hardware&lt;br /&gt;
*Heap&lt;br /&gt;
*Heapify&lt;br /&gt;
*Heapsort&lt;br /&gt;
*Hexadezimalzahlen&lt;br /&gt;
&lt;br /&gt;
=I=&lt;br /&gt;
&lt;br /&gt;
*Imperative Programmierung&lt;br /&gt;
*Implizite Typanpassung&lt;br /&gt;
*Informatik&lt;br /&gt;
*Informationsverarbeitung&lt;br /&gt;
*inorder-Durchlauf&lt;br /&gt;
*Initialisierung&lt;br /&gt;
*Instanz&lt;br /&gt;
*Integer&lt;br /&gt;
*Interface&lt;br /&gt;
*Internes Sortieren&lt;br /&gt;
*Interpretation&lt;br /&gt;
*Iteration&lt;br /&gt;
&lt;br /&gt;
=J=&lt;br /&gt;
&lt;br /&gt;
*Java&lt;br /&gt;
*Java-Programm&lt;br /&gt;
&lt;br /&gt;
=K=&lt;br /&gt;
&lt;br /&gt;
*Kommunikationsprotokoll&lt;br /&gt;
*Kreuzprodukt&lt;br /&gt;
*Kurzformen&lt;br /&gt;
*konstruierter, komplexer Datentyp&lt;br /&gt;
*Konstante&lt;br /&gt;
*Kontrollstruktur&lt;br /&gt;
*Kommunikation über Parameter&lt;br /&gt;
*Klasse&lt;br /&gt;
*Klassendefinition&lt;br /&gt;
*Konstruktor&lt;br /&gt;
*Klassenatribute/-methoden&lt;br /&gt;
*Knoten&lt;br /&gt;
&lt;br /&gt;
=L=&lt;br /&gt;
&lt;br /&gt;
*Laufvariable&lt;br /&gt;
*lineare Liste&lt;br /&gt;
*Liste&lt;br /&gt;
*Logische Programmierung&lt;br /&gt;
*Long&lt;br /&gt;
&lt;br /&gt;
=M=&lt;br /&gt;
&lt;br /&gt;
*main-Methode&lt;br /&gt;
*Maschinensprache&lt;br /&gt;
*Mengen&lt;br /&gt;
*Methode&lt;br /&gt;
*Methodendefinition&lt;br /&gt;
&lt;br /&gt;
=N=&lt;br /&gt;
&lt;br /&gt;
*Nachbedingung&lt;br /&gt;
*Nebenläufiger Algorithmus&lt;br /&gt;
*new-Operator&lt;br /&gt;
*Nibble&lt;br /&gt;
*null&lt;br /&gt;
*Numerik&lt;br /&gt;
&lt;br /&gt;
=O=&lt;br /&gt;
&lt;br /&gt;
*O-Notation&lt;br /&gt;
*Objekt&lt;br /&gt;
*Objektorientierte Programmierung&lt;br /&gt;
*Operation&lt;br /&gt;
*operationale Semantik&lt;br /&gt;
&lt;br /&gt;
=P=&lt;br /&gt;
&lt;br /&gt;
*Parallele Ausführung&lt;br /&gt;
*Parameter&lt;br /&gt;
*Parameterübergabe&lt;br /&gt;
*Polymorphie&lt;br /&gt;
*postorder&lt;br /&gt;
*preorder&lt;br /&gt;
*Primitive Datentypen&lt;br /&gt;
*Priotitäten von Operatoren&lt;br /&gt;
*private&lt;br /&gt;
*Problembeschreibung&lt;br /&gt;
*Problemklasse&lt;br /&gt;
*Programm&lt;br /&gt;
*Programmierparadigma&lt;br /&gt;
*Programmiersprache&lt;br /&gt;
*Programmierung&lt;br /&gt;
*protected&lt;br /&gt;
*Prozedur&lt;br /&gt;
*prozedurale (funkt.) Abstraktion&lt;br /&gt;
*Pseudocode&lt;br /&gt;
*public&lt;br /&gt;
*Punkt-Operator&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
&lt;br /&gt;
*Quelltext/-code&lt;br /&gt;
&lt;br /&gt;
=R=&lt;br /&gt;
&lt;br /&gt;
*Rastergrafik&lt;br /&gt;
*Raumkomplexität&lt;br /&gt;
*Rechensysteme&lt;br /&gt;
*Rechner&lt;br /&gt;
*Referenzen&lt;br /&gt;
*Rekursive Funktion&lt;br /&gt;
*Relation&lt;br /&gt;
*Repräsentation (von Daten)&lt;br /&gt;
*Robustheit&lt;br /&gt;
*Rückgabe&lt;br /&gt;
*Rückgabewert&lt;br /&gt;
&lt;br /&gt;
=S=&lt;br /&gt;
&lt;br /&gt;
*Schlangen (queue)&lt;br /&gt;
*Schleife&lt;br /&gt;
*Schlüsselwörter&lt;br /&gt;
*Semantik&lt;br /&gt;
*Sequentieller Algorithmus&lt;br /&gt;
*Sequenz&lt;br /&gt;
*Short&lt;br /&gt;
*Software&lt;br /&gt;
*Sortieralgorithmen&lt;br /&gt;
*Sortieren&lt;br /&gt;
*Speicher&lt;br /&gt;
*Speicheraddresse&lt;br /&gt;
*Spezialisierung&lt;br /&gt;
*Spezifikation&lt;br /&gt;
*Stack&lt;br /&gt;
*Standardformate&lt;br /&gt;
*Steuerzeichen&lt;br /&gt;
*Streng getypte Sprache&lt;br /&gt;
*String&lt;br /&gt;
*Subklasse&lt;br /&gt;
*Suchen&lt;br /&gt;
*Superklasse&lt;br /&gt;
*switch&lt;br /&gt;
*Syntax&lt;br /&gt;
*Syntaxdiagramm&lt;br /&gt;
&lt;br /&gt;
=T=&lt;br /&gt;
&lt;br /&gt;
*Teile und herrsche&lt;br /&gt;
*Texte (Darstellung)&lt;br /&gt;
*Terminierung&lt;br /&gt;
*Typkomplexität&lt;br /&gt;
*top-down Entwurf&lt;br /&gt;
*Terminierungsbedingung&lt;br /&gt;
*Türme von Hanoi&lt;br /&gt;
*Testklasse&lt;br /&gt;
*this&lt;br /&gt;
*Tiefendurchlauf&lt;br /&gt;
&lt;br /&gt;
=U=&lt;br /&gt;
&lt;br /&gt;
*Umrechnungsverfahren&lt;br /&gt;
*ungerichtete Graphen&lt;br /&gt;
*Unicode&lt;br /&gt;
*Unterprogramm&lt;br /&gt;
&lt;br /&gt;
=V=&lt;br /&gt;
&lt;br /&gt;
*Verifikation (bzgl. Klassen)&lt;br /&gt;
*Virtuelle Maschine&lt;br /&gt;
*Vektorgrafik&lt;br /&gt;
*Vorzeichenbetragszahlen&lt;br /&gt;
*Vorgehensweise (Erstellung eines Programms)&lt;br /&gt;
*Vorbedignung&lt;br /&gt;
*verbale Semantik&lt;br /&gt;
*Variable&lt;br /&gt;
*Variablenparameter&lt;br /&gt;
*Verwaltungsinformation&lt;br /&gt;
*Vektor / Matrix&lt;br /&gt;
*Verschmelzen&lt;br /&gt;
*Verebung&lt;br /&gt;
*Vererbungshierarchie&lt;br /&gt;
*Vollständige Induktion&lt;br /&gt;
&lt;br /&gt;
=W=&lt;br /&gt;
&lt;br /&gt;
*Wert&lt;br /&gt;
*Werteparameter&lt;br /&gt;
*while-Schleife&lt;br /&gt;
*Wurzel&lt;br /&gt;
&lt;br /&gt;
=X=&lt;br /&gt;
&lt;br /&gt;
=Y=&lt;br /&gt;
&lt;br /&gt;
=Z=&lt;br /&gt;
&lt;br /&gt;
*Zeitkomplexität&lt;br /&gt;
*Zuweisung&lt;br /&gt;
*Zuweisung (Array)&lt;br /&gt;
*Zweierkomplement&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1297</id>
		<title>Glossar (alphabetisch)</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1297"/>
				<updated>2016-05-08T15:56:23Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* R */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''!! Nur einsortiert, teilweise alphabetisch!!''&lt;br /&gt;
&lt;br /&gt;
=A=&lt;br /&gt;
&lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[abstrakte Klasse]]&lt;br /&gt;
*[[abstrakte Methode]]&lt;br /&gt;
*[[Abstraktion]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Algemeinheit]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[ASCII]]&lt;br /&gt;
*[[Attritbut]]&lt;br /&gt;
*[[Aufwand]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[AVL-Baum]]&lt;br /&gt;
&lt;br /&gt;
=B=&lt;br /&gt;
&lt;br /&gt;
*balancierter Baum&lt;br /&gt;
*Bäume&lt;br /&gt;
*Bedeutung Gleichzeichen&lt;br /&gt;
*bedingte Anweisung&lt;br /&gt;
*Bedingung&lt;br /&gt;
*Betriebssystem&lt;br /&gt;
*binärer Baum&lt;br /&gt;
*binärer Suchbaum&lt;br /&gt;
*Binärzahlen&lt;br /&gt;
*Bit&lt;br /&gt;
*Bitfolge&lt;br /&gt;
*Blatt&lt;br /&gt;
*Block&lt;br /&gt;
*Boolean&lt;br /&gt;
*Bool'sche Algebra&lt;br /&gt;
*break&lt;br /&gt;
*Breitendurchlauf&lt;br /&gt;
*Byte&lt;br /&gt;
*Byte (Javadatentyp)&lt;br /&gt;
&lt;br /&gt;
=C=&lt;br /&gt;
&lt;br /&gt;
*call by reference&lt;br /&gt;
*call by value&lt;br /&gt;
*Char&lt;br /&gt;
*Computer&lt;br /&gt;
*Compiler&lt;br /&gt;
*continue&lt;br /&gt;
*CPU&lt;br /&gt;
&lt;br /&gt;
=D=&lt;br /&gt;
&lt;br /&gt;
*Darstellung ganzer Zahlen&lt;br /&gt;
*Darstellung natürlicher Zahlen&lt;br /&gt;
*Datenstruktur&lt;br /&gt;
*Datentyp&lt;br /&gt;
*Datenverarbeitung&lt;br /&gt;
*Deklaration&lt;br /&gt;
*denotationale Semantik&lt;br /&gt;
*Determiniertheit&lt;br /&gt;
*Determinismus&lt;br /&gt;
*Dimensierung&lt;br /&gt;
*doppeltverkettete Liste&lt;br /&gt;
*Double&lt;br /&gt;
*do-while-Schleife&lt;br /&gt;
*Dynamische Datenstruktur&lt;br /&gt;
&lt;br /&gt;
=E=&lt;br /&gt;
&lt;br /&gt;
*E-/A-Medien&lt;br /&gt;
*Effizienz&lt;br /&gt;
*Ein- und Ausgabe&lt;br /&gt;
*Einfache Grundoperationen&lt;br /&gt;
*Einfügen&lt;br /&gt;
*Einzelproblem&lt;br /&gt;
*Elementaroperationen&lt;br /&gt;
*Entwurfsmethodik&lt;br /&gt;
*extends&lt;br /&gt;
*externes Sortieren&lt;br /&gt;
&lt;br /&gt;
=F=&lt;br /&gt;
&lt;br /&gt;
*Festpunktzahlen&lt;br /&gt;
*final&lt;br /&gt;
*Float&lt;br /&gt;
*for-Schleife&lt;br /&gt;
*Funktion&lt;br /&gt;
*Funktionale Programmierung&lt;br /&gt;
*funktionslokal&lt;br /&gt;
&lt;br /&gt;
=G=&lt;br /&gt;
&lt;br /&gt;
*gerichteter Graph&lt;br /&gt;
*ggt nach Euklid&lt;br /&gt;
*Gleitpunktzahl&lt;br /&gt;
*globale Variablen&lt;br /&gt;
*Graph&lt;br /&gt;
&lt;br /&gt;
=H=&lt;br /&gt;
&lt;br /&gt;
*Hardware&lt;br /&gt;
*Heap&lt;br /&gt;
*Heapify&lt;br /&gt;
*Heapsort&lt;br /&gt;
*Hexadezimalzahlen&lt;br /&gt;
&lt;br /&gt;
=I=&lt;br /&gt;
&lt;br /&gt;
*Imperative Programmierung&lt;br /&gt;
*Implizite Typanpassung&lt;br /&gt;
*Informatik&lt;br /&gt;
*Informationsverarbeitung&lt;br /&gt;
*inorder-Durchlauf&lt;br /&gt;
*Initialisierung&lt;br /&gt;
*Instanz&lt;br /&gt;
*Integer&lt;br /&gt;
*Interface&lt;br /&gt;
*Internes Sortieren&lt;br /&gt;
*Interpretation&lt;br /&gt;
*Iteration&lt;br /&gt;
&lt;br /&gt;
=J=&lt;br /&gt;
&lt;br /&gt;
*Java&lt;br /&gt;
*Java-Programm&lt;br /&gt;
&lt;br /&gt;
=K=&lt;br /&gt;
&lt;br /&gt;
*Kommunikationsprotokoll&lt;br /&gt;
*Kreuzprodukt&lt;br /&gt;
*Kurzformen&lt;br /&gt;
*konstruierter, komplexer Datentyp&lt;br /&gt;
*Konstante&lt;br /&gt;
*Kontrollstruktur&lt;br /&gt;
*Kommunikation über Parameter&lt;br /&gt;
*Klasse&lt;br /&gt;
*Klassendefinition&lt;br /&gt;
*Konstruktor&lt;br /&gt;
*Klassenatribute/-methoden&lt;br /&gt;
*Knoten&lt;br /&gt;
&lt;br /&gt;
=L=&lt;br /&gt;
&lt;br /&gt;
*Laufvariable&lt;br /&gt;
*lineare Liste&lt;br /&gt;
*Liste&lt;br /&gt;
*Logische Programmierung&lt;br /&gt;
*Long&lt;br /&gt;
&lt;br /&gt;
=M=&lt;br /&gt;
&lt;br /&gt;
*main-Methode&lt;br /&gt;
*Maschinensprache&lt;br /&gt;
*Mengen&lt;br /&gt;
*Methode&lt;br /&gt;
*Methodendefinition&lt;br /&gt;
&lt;br /&gt;
=N=&lt;br /&gt;
&lt;br /&gt;
*Nachbedingung&lt;br /&gt;
*Nebenläufiger Algorithmus&lt;br /&gt;
*new-Operator&lt;br /&gt;
*Nibble&lt;br /&gt;
*null&lt;br /&gt;
*Numerik&lt;br /&gt;
&lt;br /&gt;
=O=&lt;br /&gt;
&lt;br /&gt;
*O-Notation&lt;br /&gt;
*Objekt&lt;br /&gt;
*Objektorientierte Programmierung&lt;br /&gt;
*Operation&lt;br /&gt;
*operationale Semantik&lt;br /&gt;
&lt;br /&gt;
=P=&lt;br /&gt;
&lt;br /&gt;
*Parallele Ausführung&lt;br /&gt;
*Parameter&lt;br /&gt;
*Parameterübergabe&lt;br /&gt;
*Polymorphie&lt;br /&gt;
*postorder&lt;br /&gt;
*preorder&lt;br /&gt;
*Primitive Datentypen&lt;br /&gt;
*Priotitäten von Operatoren&lt;br /&gt;
*private&lt;br /&gt;
*Problembeschreibung&lt;br /&gt;
*Problemklasse&lt;br /&gt;
*Programm&lt;br /&gt;
*Programmierparadigma&lt;br /&gt;
*Programmiersprache&lt;br /&gt;
*Programmierung&lt;br /&gt;
*protected&lt;br /&gt;
*Prozedur&lt;br /&gt;
*prozedurale (funkt.) Abstraktion&lt;br /&gt;
*Pseudocode&lt;br /&gt;
*public&lt;br /&gt;
*Punkt-Operator&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
&lt;br /&gt;
*Quelltext/-code&lt;br /&gt;
&lt;br /&gt;
=R=&lt;br /&gt;
&lt;br /&gt;
*Rastergrafik&lt;br /&gt;
*Raumkomplexität&lt;br /&gt;
*Rechensysteme&lt;br /&gt;
*Rechner&lt;br /&gt;
*Referenzen&lt;br /&gt;
*Rekursive Funktion&lt;br /&gt;
*Relation&lt;br /&gt;
*Repräsentation (von Daten)&lt;br /&gt;
*Robustheit&lt;br /&gt;
*Rückgabe&lt;br /&gt;
*Rückgabewert&lt;br /&gt;
&lt;br /&gt;
=S=&lt;br /&gt;
&lt;br /&gt;
*Syntax&lt;br /&gt;
*Semantik&lt;br /&gt;
*Sortieren&lt;br /&gt;
*Suchen&lt;br /&gt;
*Software&lt;br /&gt;
*Speicher&lt;br /&gt;
*Standardformate&lt;br /&gt;
*Spezifikation&lt;br /&gt;
*Sequentieller Algorithmus&lt;br /&gt;
*Syntaxdiagramm&lt;br /&gt;
*Short&lt;br /&gt;
*Speicheraddresse&lt;br /&gt;
*Steuerzeichen&lt;br /&gt;
*String&lt;br /&gt;
*Streng getypte Sprache&lt;br /&gt;
*Sequenz&lt;br /&gt;
*switch&lt;br /&gt;
*Schleife&lt;br /&gt;
*static&lt;br /&gt;
*Stack&lt;br /&gt;
*Sortieralgorithmen&lt;br /&gt;
*Superklasse&lt;br /&gt;
*Subklasse&lt;br /&gt;
*Spezialisierung&lt;br /&gt;
*Schlangen (queue)&lt;br /&gt;
*Schlüsselwörter&lt;br /&gt;
&lt;br /&gt;
=T=&lt;br /&gt;
&lt;br /&gt;
*Teile und herrsche&lt;br /&gt;
*Texte (Darstellung)&lt;br /&gt;
*Terminierung&lt;br /&gt;
*Typkomplexität&lt;br /&gt;
*top-down Entwurf&lt;br /&gt;
*Terminierungsbedingung&lt;br /&gt;
*Türme von Hanoi&lt;br /&gt;
*Testklasse&lt;br /&gt;
*this&lt;br /&gt;
*Tiefendurchlauf&lt;br /&gt;
&lt;br /&gt;
=U=&lt;br /&gt;
&lt;br /&gt;
*Umrechnungsverfahren&lt;br /&gt;
*ungerichtete Graphen&lt;br /&gt;
*Unicode&lt;br /&gt;
*Unterprogramm&lt;br /&gt;
&lt;br /&gt;
=V=&lt;br /&gt;
&lt;br /&gt;
*Verifikation (bzgl. Klassen)&lt;br /&gt;
*Virtuelle Maschine&lt;br /&gt;
*Vektorgrafik&lt;br /&gt;
*Vorzeichenbetragszahlen&lt;br /&gt;
*Vorgehensweise (Erstellung eines Programms)&lt;br /&gt;
*Vorbedignung&lt;br /&gt;
*verbale Semantik&lt;br /&gt;
*Variable&lt;br /&gt;
*Variablenparameter&lt;br /&gt;
*Verwaltungsinformation&lt;br /&gt;
*Vektor / Matrix&lt;br /&gt;
*Verschmelzen&lt;br /&gt;
*Verebung&lt;br /&gt;
*Vererbungshierarchie&lt;br /&gt;
*Vollständige Induktion&lt;br /&gt;
&lt;br /&gt;
=W=&lt;br /&gt;
&lt;br /&gt;
*Wert&lt;br /&gt;
*Werteparameter&lt;br /&gt;
*while-Schleife&lt;br /&gt;
*Wurzel&lt;br /&gt;
&lt;br /&gt;
=X=&lt;br /&gt;
&lt;br /&gt;
=Y=&lt;br /&gt;
&lt;br /&gt;
=Z=&lt;br /&gt;
&lt;br /&gt;
*Zeitkomplexität&lt;br /&gt;
*Zuweisung&lt;br /&gt;
*Zuweisung (Array)&lt;br /&gt;
*Zweierkomplement&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1296</id>
		<title>Glossar (alphabetisch)</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1296"/>
				<updated>2016-05-08T15:55:21Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* P */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''!! Nur einsortiert, teilweise alphabetisch!!''&lt;br /&gt;
&lt;br /&gt;
=A=&lt;br /&gt;
&lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[abstrakte Klasse]]&lt;br /&gt;
*[[abstrakte Methode]]&lt;br /&gt;
*[[Abstraktion]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Algemeinheit]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[ASCII]]&lt;br /&gt;
*[[Attritbut]]&lt;br /&gt;
*[[Aufwand]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[AVL-Baum]]&lt;br /&gt;
&lt;br /&gt;
=B=&lt;br /&gt;
&lt;br /&gt;
*balancierter Baum&lt;br /&gt;
*Bäume&lt;br /&gt;
*Bedeutung Gleichzeichen&lt;br /&gt;
*bedingte Anweisung&lt;br /&gt;
*Bedingung&lt;br /&gt;
*Betriebssystem&lt;br /&gt;
*binärer Baum&lt;br /&gt;
*binärer Suchbaum&lt;br /&gt;
*Binärzahlen&lt;br /&gt;
*Bit&lt;br /&gt;
*Bitfolge&lt;br /&gt;
*Blatt&lt;br /&gt;
*Block&lt;br /&gt;
*Boolean&lt;br /&gt;
*Bool'sche Algebra&lt;br /&gt;
*break&lt;br /&gt;
*Breitendurchlauf&lt;br /&gt;
*Byte&lt;br /&gt;
*Byte (Javadatentyp)&lt;br /&gt;
&lt;br /&gt;
=C=&lt;br /&gt;
&lt;br /&gt;
*call by reference&lt;br /&gt;
*call by value&lt;br /&gt;
*Char&lt;br /&gt;
*Computer&lt;br /&gt;
*Compiler&lt;br /&gt;
*continue&lt;br /&gt;
*CPU&lt;br /&gt;
&lt;br /&gt;
=D=&lt;br /&gt;
&lt;br /&gt;
*Darstellung ganzer Zahlen&lt;br /&gt;
*Darstellung natürlicher Zahlen&lt;br /&gt;
*Datenstruktur&lt;br /&gt;
*Datentyp&lt;br /&gt;
*Datenverarbeitung&lt;br /&gt;
*Deklaration&lt;br /&gt;
*denotationale Semantik&lt;br /&gt;
*Determiniertheit&lt;br /&gt;
*Determinismus&lt;br /&gt;
*Dimensierung&lt;br /&gt;
*doppeltverkettete Liste&lt;br /&gt;
*Double&lt;br /&gt;
*do-while-Schleife&lt;br /&gt;
*Dynamische Datenstruktur&lt;br /&gt;
&lt;br /&gt;
=E=&lt;br /&gt;
&lt;br /&gt;
*E-/A-Medien&lt;br /&gt;
*Effizienz&lt;br /&gt;
*Ein- und Ausgabe&lt;br /&gt;
*Einfache Grundoperationen&lt;br /&gt;
*Einfügen&lt;br /&gt;
*Einzelproblem&lt;br /&gt;
*Elementaroperationen&lt;br /&gt;
*Entwurfsmethodik&lt;br /&gt;
*extends&lt;br /&gt;
*externes Sortieren&lt;br /&gt;
&lt;br /&gt;
=F=&lt;br /&gt;
&lt;br /&gt;
*Festpunktzahlen&lt;br /&gt;
*final&lt;br /&gt;
*Float&lt;br /&gt;
*for-Schleife&lt;br /&gt;
*Funktion&lt;br /&gt;
*Funktionale Programmierung&lt;br /&gt;
*funktionslokal&lt;br /&gt;
&lt;br /&gt;
=G=&lt;br /&gt;
&lt;br /&gt;
*gerichteter Graph&lt;br /&gt;
*ggt nach Euklid&lt;br /&gt;
*Gleitpunktzahl&lt;br /&gt;
*globale Variablen&lt;br /&gt;
*Graph&lt;br /&gt;
&lt;br /&gt;
=H=&lt;br /&gt;
&lt;br /&gt;
*Hardware&lt;br /&gt;
*Heap&lt;br /&gt;
*Heapify&lt;br /&gt;
*Heapsort&lt;br /&gt;
*Hexadezimalzahlen&lt;br /&gt;
&lt;br /&gt;
=I=&lt;br /&gt;
&lt;br /&gt;
*Imperative Programmierung&lt;br /&gt;
*Implizite Typanpassung&lt;br /&gt;
*Informatik&lt;br /&gt;
*Informationsverarbeitung&lt;br /&gt;
*inorder-Durchlauf&lt;br /&gt;
*Initialisierung&lt;br /&gt;
*Instanz&lt;br /&gt;
*Integer&lt;br /&gt;
*Interface&lt;br /&gt;
*Internes Sortieren&lt;br /&gt;
*Interpretation&lt;br /&gt;
*Iteration&lt;br /&gt;
&lt;br /&gt;
=J=&lt;br /&gt;
&lt;br /&gt;
*Java&lt;br /&gt;
*Java-Programm&lt;br /&gt;
&lt;br /&gt;
=K=&lt;br /&gt;
&lt;br /&gt;
*Kommunikationsprotokoll&lt;br /&gt;
*Kreuzprodukt&lt;br /&gt;
*Kurzformen&lt;br /&gt;
*konstruierter, komplexer Datentyp&lt;br /&gt;
*Konstante&lt;br /&gt;
*Kontrollstruktur&lt;br /&gt;
*Kommunikation über Parameter&lt;br /&gt;
*Klasse&lt;br /&gt;
*Klassendefinition&lt;br /&gt;
*Konstruktor&lt;br /&gt;
*Klassenatribute/-methoden&lt;br /&gt;
*Knoten&lt;br /&gt;
&lt;br /&gt;
=L=&lt;br /&gt;
&lt;br /&gt;
*Laufvariable&lt;br /&gt;
*lineare Liste&lt;br /&gt;
*Liste&lt;br /&gt;
*Logische Programmierung&lt;br /&gt;
*Long&lt;br /&gt;
&lt;br /&gt;
=M=&lt;br /&gt;
&lt;br /&gt;
*main-Methode&lt;br /&gt;
*Maschinensprache&lt;br /&gt;
*Mengen&lt;br /&gt;
*Methode&lt;br /&gt;
*Methodendefinition&lt;br /&gt;
&lt;br /&gt;
=N=&lt;br /&gt;
&lt;br /&gt;
*Nachbedingung&lt;br /&gt;
*Nebenläufiger Algorithmus&lt;br /&gt;
*new-Operator&lt;br /&gt;
*Nibble&lt;br /&gt;
*null&lt;br /&gt;
*Numerik&lt;br /&gt;
&lt;br /&gt;
=O=&lt;br /&gt;
&lt;br /&gt;
*O-Notation&lt;br /&gt;
*Objekt&lt;br /&gt;
*Objektorientierte Programmierung&lt;br /&gt;
*Operation&lt;br /&gt;
*operationale Semantik&lt;br /&gt;
&lt;br /&gt;
=P=&lt;br /&gt;
&lt;br /&gt;
*Parallele Ausführung&lt;br /&gt;
*Parameter&lt;br /&gt;
*Parameterübergabe&lt;br /&gt;
*Polymorphie&lt;br /&gt;
*postorder&lt;br /&gt;
*preorder&lt;br /&gt;
*Primitive Datentypen&lt;br /&gt;
*Priotitäten von Operatoren&lt;br /&gt;
*private&lt;br /&gt;
*Problembeschreibung&lt;br /&gt;
*Problemklasse&lt;br /&gt;
*Programm&lt;br /&gt;
*Programmierparadigma&lt;br /&gt;
*Programmiersprache&lt;br /&gt;
*Programmierung&lt;br /&gt;
*protected&lt;br /&gt;
*Prozedur&lt;br /&gt;
*prozedurale (funkt.) Abstraktion&lt;br /&gt;
*Pseudocode&lt;br /&gt;
*public&lt;br /&gt;
*Punkt-Operator&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
&lt;br /&gt;
*Quelltext/-code&lt;br /&gt;
&lt;br /&gt;
=R=&lt;br /&gt;
&lt;br /&gt;
*Raumkomplexität&lt;br /&gt;
*Rechner&lt;br /&gt;
*Rechensysteme&lt;br /&gt;
*Repräsentation (von Daten)&lt;br /&gt;
*Rastergrafik&lt;br /&gt;
*Relation&lt;br /&gt;
*Robustheit&lt;br /&gt;
*Rückgabe&lt;br /&gt;
*Rückgabewert&lt;br /&gt;
*Rekursive Funktion&lt;br /&gt;
*Referenzen&lt;br /&gt;
&lt;br /&gt;
=S=&lt;br /&gt;
&lt;br /&gt;
*Syntax&lt;br /&gt;
*Semantik&lt;br /&gt;
*Sortieren&lt;br /&gt;
*Suchen&lt;br /&gt;
*Software&lt;br /&gt;
*Speicher&lt;br /&gt;
*Standardformate&lt;br /&gt;
*Spezifikation&lt;br /&gt;
*Sequentieller Algorithmus&lt;br /&gt;
*Syntaxdiagramm&lt;br /&gt;
*Short&lt;br /&gt;
*Speicheraddresse&lt;br /&gt;
*Steuerzeichen&lt;br /&gt;
*String&lt;br /&gt;
*Streng getypte Sprache&lt;br /&gt;
*Sequenz&lt;br /&gt;
*switch&lt;br /&gt;
*Schleife&lt;br /&gt;
*static&lt;br /&gt;
*Stack&lt;br /&gt;
*Sortieralgorithmen&lt;br /&gt;
*Superklasse&lt;br /&gt;
*Subklasse&lt;br /&gt;
*Spezialisierung&lt;br /&gt;
*Schlangen (queue)&lt;br /&gt;
*Schlüsselwörter&lt;br /&gt;
&lt;br /&gt;
=T=&lt;br /&gt;
&lt;br /&gt;
*Teile und herrsche&lt;br /&gt;
*Texte (Darstellung)&lt;br /&gt;
*Terminierung&lt;br /&gt;
*Typkomplexität&lt;br /&gt;
*top-down Entwurf&lt;br /&gt;
*Terminierungsbedingung&lt;br /&gt;
*Türme von Hanoi&lt;br /&gt;
*Testklasse&lt;br /&gt;
*this&lt;br /&gt;
*Tiefendurchlauf&lt;br /&gt;
&lt;br /&gt;
=U=&lt;br /&gt;
&lt;br /&gt;
*Umrechnungsverfahren&lt;br /&gt;
*ungerichtete Graphen&lt;br /&gt;
*Unicode&lt;br /&gt;
*Unterprogramm&lt;br /&gt;
&lt;br /&gt;
=V=&lt;br /&gt;
&lt;br /&gt;
*Verifikation (bzgl. Klassen)&lt;br /&gt;
*Virtuelle Maschine&lt;br /&gt;
*Vektorgrafik&lt;br /&gt;
*Vorzeichenbetragszahlen&lt;br /&gt;
*Vorgehensweise (Erstellung eines Programms)&lt;br /&gt;
*Vorbedignung&lt;br /&gt;
*verbale Semantik&lt;br /&gt;
*Variable&lt;br /&gt;
*Variablenparameter&lt;br /&gt;
*Verwaltungsinformation&lt;br /&gt;
*Vektor / Matrix&lt;br /&gt;
*Verschmelzen&lt;br /&gt;
*Verebung&lt;br /&gt;
*Vererbungshierarchie&lt;br /&gt;
*Vollständige Induktion&lt;br /&gt;
&lt;br /&gt;
=W=&lt;br /&gt;
&lt;br /&gt;
*Wert&lt;br /&gt;
*Werteparameter&lt;br /&gt;
*while-Schleife&lt;br /&gt;
*Wurzel&lt;br /&gt;
&lt;br /&gt;
=X=&lt;br /&gt;
&lt;br /&gt;
=Y=&lt;br /&gt;
&lt;br /&gt;
=Z=&lt;br /&gt;
&lt;br /&gt;
*Zeitkomplexität&lt;br /&gt;
*Zuweisung&lt;br /&gt;
*Zuweisung (Array)&lt;br /&gt;
*Zweierkomplement&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1295</id>
		<title>Glossar (alphabetisch)</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1295"/>
				<updated>2016-05-08T15:37:36Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* I */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''!! Nur einsortiert, teilweise alphabetisch!!''&lt;br /&gt;
&lt;br /&gt;
=A=&lt;br /&gt;
&lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[abstrakte Klasse]]&lt;br /&gt;
*[[abstrakte Methode]]&lt;br /&gt;
*[[Abstraktion]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Algemeinheit]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[ASCII]]&lt;br /&gt;
*[[Attritbut]]&lt;br /&gt;
*[[Aufwand]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[AVL-Baum]]&lt;br /&gt;
&lt;br /&gt;
=B=&lt;br /&gt;
&lt;br /&gt;
*balancierter Baum&lt;br /&gt;
*Bäume&lt;br /&gt;
*Bedeutung Gleichzeichen&lt;br /&gt;
*bedingte Anweisung&lt;br /&gt;
*Bedingung&lt;br /&gt;
*Betriebssystem&lt;br /&gt;
*binärer Baum&lt;br /&gt;
*binärer Suchbaum&lt;br /&gt;
*Binärzahlen&lt;br /&gt;
*Bit&lt;br /&gt;
*Bitfolge&lt;br /&gt;
*Blatt&lt;br /&gt;
*Block&lt;br /&gt;
*Boolean&lt;br /&gt;
*Bool'sche Algebra&lt;br /&gt;
*break&lt;br /&gt;
*Breitendurchlauf&lt;br /&gt;
*Byte&lt;br /&gt;
*Byte (Javadatentyp)&lt;br /&gt;
&lt;br /&gt;
=C=&lt;br /&gt;
&lt;br /&gt;
*call by reference&lt;br /&gt;
*call by value&lt;br /&gt;
*Char&lt;br /&gt;
*Computer&lt;br /&gt;
*Compiler&lt;br /&gt;
*continue&lt;br /&gt;
*CPU&lt;br /&gt;
&lt;br /&gt;
=D=&lt;br /&gt;
&lt;br /&gt;
*Darstellung ganzer Zahlen&lt;br /&gt;
*Darstellung natürlicher Zahlen&lt;br /&gt;
*Datenstruktur&lt;br /&gt;
*Datentyp&lt;br /&gt;
*Datenverarbeitung&lt;br /&gt;
*Deklaration&lt;br /&gt;
*denotationale Semantik&lt;br /&gt;
*Determiniertheit&lt;br /&gt;
*Determinismus&lt;br /&gt;
*Dimensierung&lt;br /&gt;
*doppeltverkettete Liste&lt;br /&gt;
*Double&lt;br /&gt;
*do-while-Schleife&lt;br /&gt;
*Dynamische Datenstruktur&lt;br /&gt;
&lt;br /&gt;
=E=&lt;br /&gt;
&lt;br /&gt;
*E-/A-Medien&lt;br /&gt;
*Effizienz&lt;br /&gt;
*Ein- und Ausgabe&lt;br /&gt;
*Einfache Grundoperationen&lt;br /&gt;
*Einfügen&lt;br /&gt;
*Einzelproblem&lt;br /&gt;
*Elementaroperationen&lt;br /&gt;
*Entwurfsmethodik&lt;br /&gt;
*extends&lt;br /&gt;
*externes Sortieren&lt;br /&gt;
&lt;br /&gt;
=F=&lt;br /&gt;
&lt;br /&gt;
*Festpunktzahlen&lt;br /&gt;
*final&lt;br /&gt;
*Float&lt;br /&gt;
*for-Schleife&lt;br /&gt;
*Funktion&lt;br /&gt;
*Funktionale Programmierung&lt;br /&gt;
*funktionslokal&lt;br /&gt;
&lt;br /&gt;
=G=&lt;br /&gt;
&lt;br /&gt;
*gerichteter Graph&lt;br /&gt;
*ggt nach Euklid&lt;br /&gt;
*Gleitpunktzahl&lt;br /&gt;
*globale Variablen&lt;br /&gt;
*Graph&lt;br /&gt;
&lt;br /&gt;
=H=&lt;br /&gt;
&lt;br /&gt;
*Hardware&lt;br /&gt;
*Heap&lt;br /&gt;
*Heapify&lt;br /&gt;
*Heapsort&lt;br /&gt;
*Hexadezimalzahlen&lt;br /&gt;
&lt;br /&gt;
=I=&lt;br /&gt;
&lt;br /&gt;
*Imperative Programmierung&lt;br /&gt;
*Implizite Typanpassung&lt;br /&gt;
*Informatik&lt;br /&gt;
*Informationsverarbeitung&lt;br /&gt;
*inorder-Durchlauf&lt;br /&gt;
*Initialisierung&lt;br /&gt;
*Instanz&lt;br /&gt;
*Integer&lt;br /&gt;
*Interface&lt;br /&gt;
*Internes Sortieren&lt;br /&gt;
*Interpretation&lt;br /&gt;
*Iteration&lt;br /&gt;
&lt;br /&gt;
=J=&lt;br /&gt;
&lt;br /&gt;
*Java&lt;br /&gt;
*Java-Programm&lt;br /&gt;
&lt;br /&gt;
=K=&lt;br /&gt;
&lt;br /&gt;
*Kommunikationsprotokoll&lt;br /&gt;
*Kreuzprodukt&lt;br /&gt;
*Kurzformen&lt;br /&gt;
*konstruierter, komplexer Datentyp&lt;br /&gt;
*Konstante&lt;br /&gt;
*Kontrollstruktur&lt;br /&gt;
*Kommunikation über Parameter&lt;br /&gt;
*Klasse&lt;br /&gt;
*Klassendefinition&lt;br /&gt;
*Konstruktor&lt;br /&gt;
*Klassenatribute/-methoden&lt;br /&gt;
*Knoten&lt;br /&gt;
&lt;br /&gt;
=L=&lt;br /&gt;
&lt;br /&gt;
*Laufvariable&lt;br /&gt;
*lineare Liste&lt;br /&gt;
*Liste&lt;br /&gt;
*Logische Programmierung&lt;br /&gt;
*Long&lt;br /&gt;
&lt;br /&gt;
=M=&lt;br /&gt;
&lt;br /&gt;
*main-Methode&lt;br /&gt;
*Maschinensprache&lt;br /&gt;
*Mengen&lt;br /&gt;
*Methode&lt;br /&gt;
*Methodendefinition&lt;br /&gt;
&lt;br /&gt;
=N=&lt;br /&gt;
&lt;br /&gt;
*Nachbedingung&lt;br /&gt;
*Nebenläufiger Algorithmus&lt;br /&gt;
*new-Operator&lt;br /&gt;
*Nibble&lt;br /&gt;
*null&lt;br /&gt;
*Numerik&lt;br /&gt;
&lt;br /&gt;
=O=&lt;br /&gt;
&lt;br /&gt;
*O-Notation&lt;br /&gt;
*Objekt&lt;br /&gt;
*Objektorientierte Programmierung&lt;br /&gt;
*Operation&lt;br /&gt;
*operationale Semantik&lt;br /&gt;
&lt;br /&gt;
=P=&lt;br /&gt;
&lt;br /&gt;
*Problemklasse&lt;br /&gt;
*Programmierung&lt;br /&gt;
*Programm&lt;br /&gt;
*Problembeschreibung&lt;br /&gt;
*Pseudocode&lt;br /&gt;
*Parallele Ausführung&lt;br /&gt;
*Programmiersprache&lt;br /&gt;
*Programmierparadigma&lt;br /&gt;
*Primitive Datentypen&lt;br /&gt;
*Priotitäten von Operatoren&lt;br /&gt;
*Prozedur&lt;br /&gt;
*Parameter&lt;br /&gt;
*prozedurale (funkt.) Abstraktion&lt;br /&gt;
*public&lt;br /&gt;
*private&lt;br /&gt;
*Parameterübergabe&lt;br /&gt;
*protected&lt;br /&gt;
*Polymorphie&lt;br /&gt;
*Punkt-Operator&lt;br /&gt;
*preorder&lt;br /&gt;
*postorder&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
&lt;br /&gt;
*Quelltext/-code&lt;br /&gt;
&lt;br /&gt;
=R=&lt;br /&gt;
&lt;br /&gt;
*Raumkomplexität&lt;br /&gt;
*Rechner&lt;br /&gt;
*Rechensysteme&lt;br /&gt;
*Repräsentation (von Daten)&lt;br /&gt;
*Rastergrafik&lt;br /&gt;
*Relation&lt;br /&gt;
*Robustheit&lt;br /&gt;
*Rückgabe&lt;br /&gt;
*Rückgabewert&lt;br /&gt;
*Rekursive Funktion&lt;br /&gt;
*Referenzen&lt;br /&gt;
&lt;br /&gt;
=S=&lt;br /&gt;
&lt;br /&gt;
*Syntax&lt;br /&gt;
*Semantik&lt;br /&gt;
*Sortieren&lt;br /&gt;
*Suchen&lt;br /&gt;
*Software&lt;br /&gt;
*Speicher&lt;br /&gt;
*Standardformate&lt;br /&gt;
*Spezifikation&lt;br /&gt;
*Sequentieller Algorithmus&lt;br /&gt;
*Syntaxdiagramm&lt;br /&gt;
*Short&lt;br /&gt;
*Speicheraddresse&lt;br /&gt;
*Steuerzeichen&lt;br /&gt;
*String&lt;br /&gt;
*Streng getypte Sprache&lt;br /&gt;
*Sequenz&lt;br /&gt;
*switch&lt;br /&gt;
*Schleife&lt;br /&gt;
*static&lt;br /&gt;
*Stack&lt;br /&gt;
*Sortieralgorithmen&lt;br /&gt;
*Superklasse&lt;br /&gt;
*Subklasse&lt;br /&gt;
*Spezialisierung&lt;br /&gt;
*Schlangen (queue)&lt;br /&gt;
*Schlüsselwörter&lt;br /&gt;
&lt;br /&gt;
=T=&lt;br /&gt;
&lt;br /&gt;
*Teile und herrsche&lt;br /&gt;
*Texte (Darstellung)&lt;br /&gt;
*Terminierung&lt;br /&gt;
*Typkomplexität&lt;br /&gt;
*top-down Entwurf&lt;br /&gt;
*Terminierungsbedingung&lt;br /&gt;
*Türme von Hanoi&lt;br /&gt;
*Testklasse&lt;br /&gt;
*this&lt;br /&gt;
*Tiefendurchlauf&lt;br /&gt;
&lt;br /&gt;
=U=&lt;br /&gt;
&lt;br /&gt;
*Umrechnungsverfahren&lt;br /&gt;
*ungerichtete Graphen&lt;br /&gt;
*Unicode&lt;br /&gt;
*Unterprogramm&lt;br /&gt;
&lt;br /&gt;
=V=&lt;br /&gt;
&lt;br /&gt;
*Verifikation (bzgl. Klassen)&lt;br /&gt;
*Virtuelle Maschine&lt;br /&gt;
*Vektorgrafik&lt;br /&gt;
*Vorzeichenbetragszahlen&lt;br /&gt;
*Vorgehensweise (Erstellung eines Programms)&lt;br /&gt;
*Vorbedignung&lt;br /&gt;
*verbale Semantik&lt;br /&gt;
*Variable&lt;br /&gt;
*Variablenparameter&lt;br /&gt;
*Verwaltungsinformation&lt;br /&gt;
*Vektor / Matrix&lt;br /&gt;
*Verschmelzen&lt;br /&gt;
*Verebung&lt;br /&gt;
*Vererbungshierarchie&lt;br /&gt;
*Vollständige Induktion&lt;br /&gt;
&lt;br /&gt;
=W=&lt;br /&gt;
&lt;br /&gt;
*Wert&lt;br /&gt;
*Werteparameter&lt;br /&gt;
*while-Schleife&lt;br /&gt;
*Wurzel&lt;br /&gt;
&lt;br /&gt;
=X=&lt;br /&gt;
&lt;br /&gt;
=Y=&lt;br /&gt;
&lt;br /&gt;
=Z=&lt;br /&gt;
&lt;br /&gt;
*Zeitkomplexität&lt;br /&gt;
*Zuweisung&lt;br /&gt;
*Zuweisung (Array)&lt;br /&gt;
*Zweierkomplement&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1294</id>
		<title>Glossar (alphabetisch)</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1294"/>
				<updated>2016-05-08T15:30:45Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* E */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''!! Nur einsortiert, teilweise alphabetisch!!''&lt;br /&gt;
&lt;br /&gt;
=A=&lt;br /&gt;
&lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[abstrakte Klasse]]&lt;br /&gt;
*[[abstrakte Methode]]&lt;br /&gt;
*[[Abstraktion]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Algemeinheit]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[ASCII]]&lt;br /&gt;
*[[Attritbut]]&lt;br /&gt;
*[[Aufwand]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[AVL-Baum]]&lt;br /&gt;
&lt;br /&gt;
=B=&lt;br /&gt;
&lt;br /&gt;
*balancierter Baum&lt;br /&gt;
*Bäume&lt;br /&gt;
*Bedeutung Gleichzeichen&lt;br /&gt;
*bedingte Anweisung&lt;br /&gt;
*Bedingung&lt;br /&gt;
*Betriebssystem&lt;br /&gt;
*binärer Baum&lt;br /&gt;
*binärer Suchbaum&lt;br /&gt;
*Binärzahlen&lt;br /&gt;
*Bit&lt;br /&gt;
*Bitfolge&lt;br /&gt;
*Blatt&lt;br /&gt;
*Block&lt;br /&gt;
*Boolean&lt;br /&gt;
*Bool'sche Algebra&lt;br /&gt;
*break&lt;br /&gt;
*Breitendurchlauf&lt;br /&gt;
*Byte&lt;br /&gt;
*Byte (Javadatentyp)&lt;br /&gt;
&lt;br /&gt;
=C=&lt;br /&gt;
&lt;br /&gt;
*call by reference&lt;br /&gt;
*call by value&lt;br /&gt;
*Char&lt;br /&gt;
*Computer&lt;br /&gt;
*Compiler&lt;br /&gt;
*continue&lt;br /&gt;
*CPU&lt;br /&gt;
&lt;br /&gt;
=D=&lt;br /&gt;
&lt;br /&gt;
*Darstellung ganzer Zahlen&lt;br /&gt;
*Darstellung natürlicher Zahlen&lt;br /&gt;
*Datenstruktur&lt;br /&gt;
*Datentyp&lt;br /&gt;
*Datenverarbeitung&lt;br /&gt;
*Deklaration&lt;br /&gt;
*denotationale Semantik&lt;br /&gt;
*Determiniertheit&lt;br /&gt;
*Determinismus&lt;br /&gt;
*Dimensierung&lt;br /&gt;
*doppeltverkettete Liste&lt;br /&gt;
*Double&lt;br /&gt;
*do-while-Schleife&lt;br /&gt;
*Dynamische Datenstruktur&lt;br /&gt;
&lt;br /&gt;
=E=&lt;br /&gt;
&lt;br /&gt;
*E-/A-Medien&lt;br /&gt;
*Effizienz&lt;br /&gt;
*Ein- und Ausgabe&lt;br /&gt;
*Einfache Grundoperationen&lt;br /&gt;
*Einfügen&lt;br /&gt;
*Einzelproblem&lt;br /&gt;
*Elementaroperationen&lt;br /&gt;
*Entwurfsmethodik&lt;br /&gt;
*extends&lt;br /&gt;
*externes Sortieren&lt;br /&gt;
&lt;br /&gt;
=F=&lt;br /&gt;
&lt;br /&gt;
*Festpunktzahlen&lt;br /&gt;
*final&lt;br /&gt;
*Float&lt;br /&gt;
*for-Schleife&lt;br /&gt;
*Funktion&lt;br /&gt;
*Funktionale Programmierung&lt;br /&gt;
*funktionslokal&lt;br /&gt;
&lt;br /&gt;
=G=&lt;br /&gt;
&lt;br /&gt;
*gerichteter Graph&lt;br /&gt;
*ggt nach Euklid&lt;br /&gt;
*Gleitpunktzahl&lt;br /&gt;
*globale Variablen&lt;br /&gt;
*Graph&lt;br /&gt;
&lt;br /&gt;
=H=&lt;br /&gt;
&lt;br /&gt;
*Hardware&lt;br /&gt;
*Heap&lt;br /&gt;
*Heapify&lt;br /&gt;
*Heapsort&lt;br /&gt;
*Hexadezimalzahlen&lt;br /&gt;
&lt;br /&gt;
=I=&lt;br /&gt;
&lt;br /&gt;
*Informatik&lt;br /&gt;
*Imperative Programmierung&lt;br /&gt;
*Informationsverarbeitung&lt;br /&gt;
*Interpretation&lt;br /&gt;
*Initialisierung&lt;br /&gt;
*Integer&lt;br /&gt;
*Implizite Typanpassung&lt;br /&gt;
*Iteration&lt;br /&gt;
*Internes Sortieren&lt;br /&gt;
*Instanz&lt;br /&gt;
*Interface&lt;br /&gt;
*inorder-Durchlauf&lt;br /&gt;
&lt;br /&gt;
=J=&lt;br /&gt;
&lt;br /&gt;
*Java&lt;br /&gt;
*Java-Programm&lt;br /&gt;
&lt;br /&gt;
=K=&lt;br /&gt;
&lt;br /&gt;
*Kommunikationsprotokoll&lt;br /&gt;
*Kreuzprodukt&lt;br /&gt;
*Kurzformen&lt;br /&gt;
*konstruierter, komplexer Datentyp&lt;br /&gt;
*Konstante&lt;br /&gt;
*Kontrollstruktur&lt;br /&gt;
*Kommunikation über Parameter&lt;br /&gt;
*Klasse&lt;br /&gt;
*Klassendefinition&lt;br /&gt;
*Konstruktor&lt;br /&gt;
*Klassenatribute/-methoden&lt;br /&gt;
*Knoten&lt;br /&gt;
&lt;br /&gt;
=L=&lt;br /&gt;
&lt;br /&gt;
*Laufvariable&lt;br /&gt;
*lineare Liste&lt;br /&gt;
*Liste&lt;br /&gt;
*Logische Programmierung&lt;br /&gt;
*Long&lt;br /&gt;
&lt;br /&gt;
=M=&lt;br /&gt;
&lt;br /&gt;
*main-Methode&lt;br /&gt;
*Maschinensprache&lt;br /&gt;
*Mengen&lt;br /&gt;
*Methode&lt;br /&gt;
*Methodendefinition&lt;br /&gt;
&lt;br /&gt;
=N=&lt;br /&gt;
&lt;br /&gt;
*Nachbedingung&lt;br /&gt;
*Nebenläufiger Algorithmus&lt;br /&gt;
*new-Operator&lt;br /&gt;
*Nibble&lt;br /&gt;
*null&lt;br /&gt;
*Numerik&lt;br /&gt;
&lt;br /&gt;
=O=&lt;br /&gt;
&lt;br /&gt;
*O-Notation&lt;br /&gt;
*Objekt&lt;br /&gt;
*Objektorientierte Programmierung&lt;br /&gt;
*Operation&lt;br /&gt;
*operationale Semantik&lt;br /&gt;
&lt;br /&gt;
=P=&lt;br /&gt;
&lt;br /&gt;
*Problemklasse&lt;br /&gt;
*Programmierung&lt;br /&gt;
*Programm&lt;br /&gt;
*Problembeschreibung&lt;br /&gt;
*Pseudocode&lt;br /&gt;
*Parallele Ausführung&lt;br /&gt;
*Programmiersprache&lt;br /&gt;
*Programmierparadigma&lt;br /&gt;
*Primitive Datentypen&lt;br /&gt;
*Priotitäten von Operatoren&lt;br /&gt;
*Prozedur&lt;br /&gt;
*Parameter&lt;br /&gt;
*prozedurale (funkt.) Abstraktion&lt;br /&gt;
*public&lt;br /&gt;
*private&lt;br /&gt;
*Parameterübergabe&lt;br /&gt;
*protected&lt;br /&gt;
*Polymorphie&lt;br /&gt;
*Punkt-Operator&lt;br /&gt;
*preorder&lt;br /&gt;
*postorder&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
&lt;br /&gt;
*Quelltext/-code&lt;br /&gt;
&lt;br /&gt;
=R=&lt;br /&gt;
&lt;br /&gt;
*Raumkomplexität&lt;br /&gt;
*Rechner&lt;br /&gt;
*Rechensysteme&lt;br /&gt;
*Repräsentation (von Daten)&lt;br /&gt;
*Rastergrafik&lt;br /&gt;
*Relation&lt;br /&gt;
*Robustheit&lt;br /&gt;
*Rückgabe&lt;br /&gt;
*Rückgabewert&lt;br /&gt;
*Rekursive Funktion&lt;br /&gt;
*Referenzen&lt;br /&gt;
&lt;br /&gt;
=S=&lt;br /&gt;
&lt;br /&gt;
*Syntax&lt;br /&gt;
*Semantik&lt;br /&gt;
*Sortieren&lt;br /&gt;
*Suchen&lt;br /&gt;
*Software&lt;br /&gt;
*Speicher&lt;br /&gt;
*Standardformate&lt;br /&gt;
*Spezifikation&lt;br /&gt;
*Sequentieller Algorithmus&lt;br /&gt;
*Syntaxdiagramm&lt;br /&gt;
*Short&lt;br /&gt;
*Speicheraddresse&lt;br /&gt;
*Steuerzeichen&lt;br /&gt;
*String&lt;br /&gt;
*Streng getypte Sprache&lt;br /&gt;
*Sequenz&lt;br /&gt;
*switch&lt;br /&gt;
*Schleife&lt;br /&gt;
*static&lt;br /&gt;
*Stack&lt;br /&gt;
*Sortieralgorithmen&lt;br /&gt;
*Superklasse&lt;br /&gt;
*Subklasse&lt;br /&gt;
*Spezialisierung&lt;br /&gt;
*Schlangen (queue)&lt;br /&gt;
*Schlüsselwörter&lt;br /&gt;
&lt;br /&gt;
=T=&lt;br /&gt;
&lt;br /&gt;
*Teile und herrsche&lt;br /&gt;
*Texte (Darstellung)&lt;br /&gt;
*Terminierung&lt;br /&gt;
*Typkomplexität&lt;br /&gt;
*top-down Entwurf&lt;br /&gt;
*Terminierungsbedingung&lt;br /&gt;
*Türme von Hanoi&lt;br /&gt;
*Testklasse&lt;br /&gt;
*this&lt;br /&gt;
*Tiefendurchlauf&lt;br /&gt;
&lt;br /&gt;
=U=&lt;br /&gt;
&lt;br /&gt;
*Umrechnungsverfahren&lt;br /&gt;
*ungerichtete Graphen&lt;br /&gt;
*Unicode&lt;br /&gt;
*Unterprogramm&lt;br /&gt;
&lt;br /&gt;
=V=&lt;br /&gt;
&lt;br /&gt;
*Verifikation (bzgl. Klassen)&lt;br /&gt;
*Virtuelle Maschine&lt;br /&gt;
*Vektorgrafik&lt;br /&gt;
*Vorzeichenbetragszahlen&lt;br /&gt;
*Vorgehensweise (Erstellung eines Programms)&lt;br /&gt;
*Vorbedignung&lt;br /&gt;
*verbale Semantik&lt;br /&gt;
*Variable&lt;br /&gt;
*Variablenparameter&lt;br /&gt;
*Verwaltungsinformation&lt;br /&gt;
*Vektor / Matrix&lt;br /&gt;
*Verschmelzen&lt;br /&gt;
*Verebung&lt;br /&gt;
*Vererbungshierarchie&lt;br /&gt;
*Vollständige Induktion&lt;br /&gt;
&lt;br /&gt;
=W=&lt;br /&gt;
&lt;br /&gt;
*Wert&lt;br /&gt;
*Werteparameter&lt;br /&gt;
*while-Schleife&lt;br /&gt;
*Wurzel&lt;br /&gt;
&lt;br /&gt;
=X=&lt;br /&gt;
&lt;br /&gt;
=Y=&lt;br /&gt;
&lt;br /&gt;
=Z=&lt;br /&gt;
&lt;br /&gt;
*Zeitkomplexität&lt;br /&gt;
*Zuweisung&lt;br /&gt;
*Zuweisung (Array)&lt;br /&gt;
*Zweierkomplement&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1293</id>
		<title>Glossar (alphabetisch)</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1293"/>
				<updated>2016-05-08T15:28:48Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* D */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''!! Nur einsortiert, teilweise alphabetisch!!''&lt;br /&gt;
&lt;br /&gt;
=A=&lt;br /&gt;
&lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[abstrakte Klasse]]&lt;br /&gt;
*[[abstrakte Methode]]&lt;br /&gt;
*[[Abstraktion]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Algemeinheit]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[ASCII]]&lt;br /&gt;
*[[Attritbut]]&lt;br /&gt;
*[[Aufwand]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[AVL-Baum]]&lt;br /&gt;
&lt;br /&gt;
=B=&lt;br /&gt;
&lt;br /&gt;
*balancierter Baum&lt;br /&gt;
*Bäume&lt;br /&gt;
*Bedeutung Gleichzeichen&lt;br /&gt;
*bedingte Anweisung&lt;br /&gt;
*Bedingung&lt;br /&gt;
*Betriebssystem&lt;br /&gt;
*binärer Baum&lt;br /&gt;
*binärer Suchbaum&lt;br /&gt;
*Binärzahlen&lt;br /&gt;
*Bit&lt;br /&gt;
*Bitfolge&lt;br /&gt;
*Blatt&lt;br /&gt;
*Block&lt;br /&gt;
*Boolean&lt;br /&gt;
*Bool'sche Algebra&lt;br /&gt;
*break&lt;br /&gt;
*Breitendurchlauf&lt;br /&gt;
*Byte&lt;br /&gt;
*Byte (Javadatentyp)&lt;br /&gt;
&lt;br /&gt;
=C=&lt;br /&gt;
&lt;br /&gt;
*call by reference&lt;br /&gt;
*call by value&lt;br /&gt;
*Char&lt;br /&gt;
*Computer&lt;br /&gt;
*Compiler&lt;br /&gt;
*continue&lt;br /&gt;
*CPU&lt;br /&gt;
&lt;br /&gt;
=D=&lt;br /&gt;
&lt;br /&gt;
*Darstellung ganzer Zahlen&lt;br /&gt;
*Darstellung natürlicher Zahlen&lt;br /&gt;
*Datenstruktur&lt;br /&gt;
*Datentyp&lt;br /&gt;
*Datenverarbeitung&lt;br /&gt;
*Deklaration&lt;br /&gt;
*denotationale Semantik&lt;br /&gt;
*Determiniertheit&lt;br /&gt;
*Determinismus&lt;br /&gt;
*Dimensierung&lt;br /&gt;
*doppeltverkettete Liste&lt;br /&gt;
*Double&lt;br /&gt;
*do-while-Schleife&lt;br /&gt;
*Dynamische Datenstruktur&lt;br /&gt;
&lt;br /&gt;
=E=&lt;br /&gt;
&lt;br /&gt;
*Einzelproblem&lt;br /&gt;
*Effizienz&lt;br /&gt;
*Entwurfsmethodik&lt;br /&gt;
*E-/A-Medien&lt;br /&gt;
*Ein- und Ausgabe&lt;br /&gt;
*Elementaroperationen&lt;br /&gt;
*Einfache Grundoperationen&lt;br /&gt;
*externes Sortieren&lt;br /&gt;
*Einfügen&lt;br /&gt;
*extends&lt;br /&gt;
&lt;br /&gt;
=F=&lt;br /&gt;
&lt;br /&gt;
*Festpunktzahlen&lt;br /&gt;
*final&lt;br /&gt;
*Float&lt;br /&gt;
*for-Schleife&lt;br /&gt;
*Funktion&lt;br /&gt;
*Funktionale Programmierung&lt;br /&gt;
*funktionslokal&lt;br /&gt;
&lt;br /&gt;
=G=&lt;br /&gt;
&lt;br /&gt;
*gerichteter Graph&lt;br /&gt;
*ggt nach Euklid&lt;br /&gt;
*Gleitpunktzahl&lt;br /&gt;
*globale Variablen&lt;br /&gt;
*Graph&lt;br /&gt;
&lt;br /&gt;
=H=&lt;br /&gt;
&lt;br /&gt;
*Hardware&lt;br /&gt;
*Heap&lt;br /&gt;
*Heapify&lt;br /&gt;
*Heapsort&lt;br /&gt;
*Hexadezimalzahlen&lt;br /&gt;
&lt;br /&gt;
=I=&lt;br /&gt;
&lt;br /&gt;
*Informatik&lt;br /&gt;
*Imperative Programmierung&lt;br /&gt;
*Informationsverarbeitung&lt;br /&gt;
*Interpretation&lt;br /&gt;
*Initialisierung&lt;br /&gt;
*Integer&lt;br /&gt;
*Implizite Typanpassung&lt;br /&gt;
*Iteration&lt;br /&gt;
*Internes Sortieren&lt;br /&gt;
*Instanz&lt;br /&gt;
*Interface&lt;br /&gt;
*inorder-Durchlauf&lt;br /&gt;
&lt;br /&gt;
=J=&lt;br /&gt;
&lt;br /&gt;
*Java&lt;br /&gt;
*Java-Programm&lt;br /&gt;
&lt;br /&gt;
=K=&lt;br /&gt;
&lt;br /&gt;
*Kommunikationsprotokoll&lt;br /&gt;
*Kreuzprodukt&lt;br /&gt;
*Kurzformen&lt;br /&gt;
*konstruierter, komplexer Datentyp&lt;br /&gt;
*Konstante&lt;br /&gt;
*Kontrollstruktur&lt;br /&gt;
*Kommunikation über Parameter&lt;br /&gt;
*Klasse&lt;br /&gt;
*Klassendefinition&lt;br /&gt;
*Konstruktor&lt;br /&gt;
*Klassenatribute/-methoden&lt;br /&gt;
*Knoten&lt;br /&gt;
&lt;br /&gt;
=L=&lt;br /&gt;
&lt;br /&gt;
*Laufvariable&lt;br /&gt;
*lineare Liste&lt;br /&gt;
*Liste&lt;br /&gt;
*Logische Programmierung&lt;br /&gt;
*Long&lt;br /&gt;
&lt;br /&gt;
=M=&lt;br /&gt;
&lt;br /&gt;
*main-Methode&lt;br /&gt;
*Maschinensprache&lt;br /&gt;
*Mengen&lt;br /&gt;
*Methode&lt;br /&gt;
*Methodendefinition&lt;br /&gt;
&lt;br /&gt;
=N=&lt;br /&gt;
&lt;br /&gt;
*Nachbedingung&lt;br /&gt;
*Nebenläufiger Algorithmus&lt;br /&gt;
*new-Operator&lt;br /&gt;
*Nibble&lt;br /&gt;
*null&lt;br /&gt;
*Numerik&lt;br /&gt;
&lt;br /&gt;
=O=&lt;br /&gt;
&lt;br /&gt;
*O-Notation&lt;br /&gt;
*Objekt&lt;br /&gt;
*Objektorientierte Programmierung&lt;br /&gt;
*Operation&lt;br /&gt;
*operationale Semantik&lt;br /&gt;
&lt;br /&gt;
=P=&lt;br /&gt;
&lt;br /&gt;
*Problemklasse&lt;br /&gt;
*Programmierung&lt;br /&gt;
*Programm&lt;br /&gt;
*Problembeschreibung&lt;br /&gt;
*Pseudocode&lt;br /&gt;
*Parallele Ausführung&lt;br /&gt;
*Programmiersprache&lt;br /&gt;
*Programmierparadigma&lt;br /&gt;
*Primitive Datentypen&lt;br /&gt;
*Priotitäten von Operatoren&lt;br /&gt;
*Prozedur&lt;br /&gt;
*Parameter&lt;br /&gt;
*prozedurale (funkt.) Abstraktion&lt;br /&gt;
*public&lt;br /&gt;
*private&lt;br /&gt;
*Parameterübergabe&lt;br /&gt;
*protected&lt;br /&gt;
*Polymorphie&lt;br /&gt;
*Punkt-Operator&lt;br /&gt;
*preorder&lt;br /&gt;
*postorder&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
&lt;br /&gt;
*Quelltext/-code&lt;br /&gt;
&lt;br /&gt;
=R=&lt;br /&gt;
&lt;br /&gt;
*Raumkomplexität&lt;br /&gt;
*Rechner&lt;br /&gt;
*Rechensysteme&lt;br /&gt;
*Repräsentation (von Daten)&lt;br /&gt;
*Rastergrafik&lt;br /&gt;
*Relation&lt;br /&gt;
*Robustheit&lt;br /&gt;
*Rückgabe&lt;br /&gt;
*Rückgabewert&lt;br /&gt;
*Rekursive Funktion&lt;br /&gt;
*Referenzen&lt;br /&gt;
&lt;br /&gt;
=S=&lt;br /&gt;
&lt;br /&gt;
*Syntax&lt;br /&gt;
*Semantik&lt;br /&gt;
*Sortieren&lt;br /&gt;
*Suchen&lt;br /&gt;
*Software&lt;br /&gt;
*Speicher&lt;br /&gt;
*Standardformate&lt;br /&gt;
*Spezifikation&lt;br /&gt;
*Sequentieller Algorithmus&lt;br /&gt;
*Syntaxdiagramm&lt;br /&gt;
*Short&lt;br /&gt;
*Speicheraddresse&lt;br /&gt;
*Steuerzeichen&lt;br /&gt;
*String&lt;br /&gt;
*Streng getypte Sprache&lt;br /&gt;
*Sequenz&lt;br /&gt;
*switch&lt;br /&gt;
*Schleife&lt;br /&gt;
*static&lt;br /&gt;
*Stack&lt;br /&gt;
*Sortieralgorithmen&lt;br /&gt;
*Superklasse&lt;br /&gt;
*Subklasse&lt;br /&gt;
*Spezialisierung&lt;br /&gt;
*Schlangen (queue)&lt;br /&gt;
*Schlüsselwörter&lt;br /&gt;
&lt;br /&gt;
=T=&lt;br /&gt;
&lt;br /&gt;
*Teile und herrsche&lt;br /&gt;
*Texte (Darstellung)&lt;br /&gt;
*Terminierung&lt;br /&gt;
*Typkomplexität&lt;br /&gt;
*top-down Entwurf&lt;br /&gt;
*Terminierungsbedingung&lt;br /&gt;
*Türme von Hanoi&lt;br /&gt;
*Testklasse&lt;br /&gt;
*this&lt;br /&gt;
*Tiefendurchlauf&lt;br /&gt;
&lt;br /&gt;
=U=&lt;br /&gt;
&lt;br /&gt;
*Umrechnungsverfahren&lt;br /&gt;
*ungerichtete Graphen&lt;br /&gt;
*Unicode&lt;br /&gt;
*Unterprogramm&lt;br /&gt;
&lt;br /&gt;
=V=&lt;br /&gt;
&lt;br /&gt;
*Verifikation (bzgl. Klassen)&lt;br /&gt;
*Virtuelle Maschine&lt;br /&gt;
*Vektorgrafik&lt;br /&gt;
*Vorzeichenbetragszahlen&lt;br /&gt;
*Vorgehensweise (Erstellung eines Programms)&lt;br /&gt;
*Vorbedignung&lt;br /&gt;
*verbale Semantik&lt;br /&gt;
*Variable&lt;br /&gt;
*Variablenparameter&lt;br /&gt;
*Verwaltungsinformation&lt;br /&gt;
*Vektor / Matrix&lt;br /&gt;
*Verschmelzen&lt;br /&gt;
*Verebung&lt;br /&gt;
*Vererbungshierarchie&lt;br /&gt;
*Vollständige Induktion&lt;br /&gt;
&lt;br /&gt;
=W=&lt;br /&gt;
&lt;br /&gt;
*Wert&lt;br /&gt;
*Werteparameter&lt;br /&gt;
*while-Schleife&lt;br /&gt;
*Wurzel&lt;br /&gt;
&lt;br /&gt;
=X=&lt;br /&gt;
&lt;br /&gt;
=Y=&lt;br /&gt;
&lt;br /&gt;
=Z=&lt;br /&gt;
&lt;br /&gt;
*Zeitkomplexität&lt;br /&gt;
*Zuweisung&lt;br /&gt;
*Zuweisung (Array)&lt;br /&gt;
*Zweierkomplement&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1292</id>
		<title>Glossar (alphabetisch)</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1292"/>
				<updated>2016-05-08T15:27:25Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* D */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''!! Nur einsortiert, teilweise alphabetisch!!''&lt;br /&gt;
&lt;br /&gt;
=A=&lt;br /&gt;
&lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[abstrakte Klasse]]&lt;br /&gt;
*[[abstrakte Methode]]&lt;br /&gt;
*[[Abstraktion]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Algemeinheit]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[ASCII]]&lt;br /&gt;
*[[Attritbut]]&lt;br /&gt;
*[[Aufwand]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[AVL-Baum]]&lt;br /&gt;
&lt;br /&gt;
=B=&lt;br /&gt;
&lt;br /&gt;
*balancierter Baum&lt;br /&gt;
*Bäume&lt;br /&gt;
*Bedeutung Gleichzeichen&lt;br /&gt;
*bedingte Anweisung&lt;br /&gt;
*Bedingung&lt;br /&gt;
*Betriebssystem&lt;br /&gt;
*binärer Baum&lt;br /&gt;
*binärer Suchbaum&lt;br /&gt;
*Binärzahlen&lt;br /&gt;
*Bit&lt;br /&gt;
*Bitfolge&lt;br /&gt;
*Blatt&lt;br /&gt;
*Block&lt;br /&gt;
*Boolean&lt;br /&gt;
*Bool'sche Algebra&lt;br /&gt;
*break&lt;br /&gt;
*Breitendurchlauf&lt;br /&gt;
*Byte&lt;br /&gt;
*Byte (Javadatentyp)&lt;br /&gt;
&lt;br /&gt;
=C=&lt;br /&gt;
&lt;br /&gt;
*call by reference&lt;br /&gt;
*call by value&lt;br /&gt;
*Char&lt;br /&gt;
*Computer&lt;br /&gt;
*Compiler&lt;br /&gt;
*continue&lt;br /&gt;
*CPU&lt;br /&gt;
&lt;br /&gt;
=D=&lt;br /&gt;
&lt;br /&gt;
    *Darstellung ganzer Zahlen&lt;br /&gt;
    *Darstellung natürlicher Zahlen&lt;br /&gt;
    *Datenstruktur&lt;br /&gt;
    *Datentyp&lt;br /&gt;
    *Datenverarbeitung&lt;br /&gt;
    *Deklaration&lt;br /&gt;
    *Determiniertheit&lt;br /&gt;
    *Determinismus&lt;br /&gt;
    *Dimensierung&lt;br /&gt;
    *Double&lt;br /&gt;
    *Dynamische Datenstruktur&lt;br /&gt;
    *denotationale Semantik&lt;br /&gt;
    *do-while-Schleife&lt;br /&gt;
    *doppeltverkettete Liste&lt;br /&gt;
&lt;br /&gt;
=E=&lt;br /&gt;
&lt;br /&gt;
*Einzelproblem&lt;br /&gt;
*Effizienz&lt;br /&gt;
*Entwurfsmethodik&lt;br /&gt;
*E-/A-Medien&lt;br /&gt;
*Ein- und Ausgabe&lt;br /&gt;
*Elementaroperationen&lt;br /&gt;
*Einfache Grundoperationen&lt;br /&gt;
*externes Sortieren&lt;br /&gt;
*Einfügen&lt;br /&gt;
*extends&lt;br /&gt;
&lt;br /&gt;
=F=&lt;br /&gt;
&lt;br /&gt;
*Festpunktzahlen&lt;br /&gt;
*final&lt;br /&gt;
*Float&lt;br /&gt;
*for-Schleife&lt;br /&gt;
*Funktion&lt;br /&gt;
*Funktionale Programmierung&lt;br /&gt;
*funktionslokal&lt;br /&gt;
&lt;br /&gt;
=G=&lt;br /&gt;
&lt;br /&gt;
*gerichteter Graph&lt;br /&gt;
*ggt nach Euklid&lt;br /&gt;
*Gleitpunktzahl&lt;br /&gt;
*globale Variablen&lt;br /&gt;
*Graph&lt;br /&gt;
&lt;br /&gt;
=H=&lt;br /&gt;
&lt;br /&gt;
*Hardware&lt;br /&gt;
*Heap&lt;br /&gt;
*Heapify&lt;br /&gt;
*Heapsort&lt;br /&gt;
*Hexadezimalzahlen&lt;br /&gt;
&lt;br /&gt;
=I=&lt;br /&gt;
&lt;br /&gt;
*Informatik&lt;br /&gt;
*Imperative Programmierung&lt;br /&gt;
*Informationsverarbeitung&lt;br /&gt;
*Interpretation&lt;br /&gt;
*Initialisierung&lt;br /&gt;
*Integer&lt;br /&gt;
*Implizite Typanpassung&lt;br /&gt;
*Iteration&lt;br /&gt;
*Internes Sortieren&lt;br /&gt;
*Instanz&lt;br /&gt;
*Interface&lt;br /&gt;
*inorder-Durchlauf&lt;br /&gt;
&lt;br /&gt;
=J=&lt;br /&gt;
&lt;br /&gt;
*Java&lt;br /&gt;
*Java-Programm&lt;br /&gt;
&lt;br /&gt;
=K=&lt;br /&gt;
&lt;br /&gt;
*Kommunikationsprotokoll&lt;br /&gt;
*Kreuzprodukt&lt;br /&gt;
*Kurzformen&lt;br /&gt;
*konstruierter, komplexer Datentyp&lt;br /&gt;
*Konstante&lt;br /&gt;
*Kontrollstruktur&lt;br /&gt;
*Kommunikation über Parameter&lt;br /&gt;
*Klasse&lt;br /&gt;
*Klassendefinition&lt;br /&gt;
*Konstruktor&lt;br /&gt;
*Klassenatribute/-methoden&lt;br /&gt;
*Knoten&lt;br /&gt;
&lt;br /&gt;
=L=&lt;br /&gt;
&lt;br /&gt;
*Laufvariable&lt;br /&gt;
*lineare Liste&lt;br /&gt;
*Liste&lt;br /&gt;
*Logische Programmierung&lt;br /&gt;
*Long&lt;br /&gt;
&lt;br /&gt;
=M=&lt;br /&gt;
&lt;br /&gt;
*main-Methode&lt;br /&gt;
*Maschinensprache&lt;br /&gt;
*Mengen&lt;br /&gt;
*Methode&lt;br /&gt;
*Methodendefinition&lt;br /&gt;
&lt;br /&gt;
=N=&lt;br /&gt;
&lt;br /&gt;
*Nachbedingung&lt;br /&gt;
*Nebenläufiger Algorithmus&lt;br /&gt;
*new-Operator&lt;br /&gt;
*Nibble&lt;br /&gt;
*null&lt;br /&gt;
*Numerik&lt;br /&gt;
&lt;br /&gt;
=O=&lt;br /&gt;
&lt;br /&gt;
*O-Notation&lt;br /&gt;
*Objekt&lt;br /&gt;
*Objektorientierte Programmierung&lt;br /&gt;
*Operation&lt;br /&gt;
*operationale Semantik&lt;br /&gt;
&lt;br /&gt;
=P=&lt;br /&gt;
&lt;br /&gt;
*Problemklasse&lt;br /&gt;
*Programmierung&lt;br /&gt;
*Programm&lt;br /&gt;
*Problembeschreibung&lt;br /&gt;
*Pseudocode&lt;br /&gt;
*Parallele Ausführung&lt;br /&gt;
*Programmiersprache&lt;br /&gt;
*Programmierparadigma&lt;br /&gt;
*Primitive Datentypen&lt;br /&gt;
*Priotitäten von Operatoren&lt;br /&gt;
*Prozedur&lt;br /&gt;
*Parameter&lt;br /&gt;
*prozedurale (funkt.) Abstraktion&lt;br /&gt;
*public&lt;br /&gt;
*private&lt;br /&gt;
*Parameterübergabe&lt;br /&gt;
*protected&lt;br /&gt;
*Polymorphie&lt;br /&gt;
*Punkt-Operator&lt;br /&gt;
*preorder&lt;br /&gt;
*postorder&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
&lt;br /&gt;
*Quelltext/-code&lt;br /&gt;
&lt;br /&gt;
=R=&lt;br /&gt;
&lt;br /&gt;
*Raumkomplexität&lt;br /&gt;
*Rechner&lt;br /&gt;
*Rechensysteme&lt;br /&gt;
*Repräsentation (von Daten)&lt;br /&gt;
*Rastergrafik&lt;br /&gt;
*Relation&lt;br /&gt;
*Robustheit&lt;br /&gt;
*Rückgabe&lt;br /&gt;
*Rückgabewert&lt;br /&gt;
*Rekursive Funktion&lt;br /&gt;
*Referenzen&lt;br /&gt;
&lt;br /&gt;
=S=&lt;br /&gt;
&lt;br /&gt;
*Syntax&lt;br /&gt;
*Semantik&lt;br /&gt;
*Sortieren&lt;br /&gt;
*Suchen&lt;br /&gt;
*Software&lt;br /&gt;
*Speicher&lt;br /&gt;
*Standardformate&lt;br /&gt;
*Spezifikation&lt;br /&gt;
*Sequentieller Algorithmus&lt;br /&gt;
*Syntaxdiagramm&lt;br /&gt;
*Short&lt;br /&gt;
*Speicheraddresse&lt;br /&gt;
*Steuerzeichen&lt;br /&gt;
*String&lt;br /&gt;
*Streng getypte Sprache&lt;br /&gt;
*Sequenz&lt;br /&gt;
*switch&lt;br /&gt;
*Schleife&lt;br /&gt;
*static&lt;br /&gt;
*Stack&lt;br /&gt;
*Sortieralgorithmen&lt;br /&gt;
*Superklasse&lt;br /&gt;
*Subklasse&lt;br /&gt;
*Spezialisierung&lt;br /&gt;
*Schlangen (queue)&lt;br /&gt;
*Schlüsselwörter&lt;br /&gt;
&lt;br /&gt;
=T=&lt;br /&gt;
&lt;br /&gt;
*Teile und herrsche&lt;br /&gt;
*Texte (Darstellung)&lt;br /&gt;
*Terminierung&lt;br /&gt;
*Typkomplexität&lt;br /&gt;
*top-down Entwurf&lt;br /&gt;
*Terminierungsbedingung&lt;br /&gt;
*Türme von Hanoi&lt;br /&gt;
*Testklasse&lt;br /&gt;
*this&lt;br /&gt;
*Tiefendurchlauf&lt;br /&gt;
&lt;br /&gt;
=U=&lt;br /&gt;
&lt;br /&gt;
*Umrechnungsverfahren&lt;br /&gt;
*ungerichtete Graphen&lt;br /&gt;
*Unicode&lt;br /&gt;
*Unterprogramm&lt;br /&gt;
&lt;br /&gt;
=V=&lt;br /&gt;
&lt;br /&gt;
*Verifikation (bzgl. Klassen)&lt;br /&gt;
*Virtuelle Maschine&lt;br /&gt;
*Vektorgrafik&lt;br /&gt;
*Vorzeichenbetragszahlen&lt;br /&gt;
*Vorgehensweise (Erstellung eines Programms)&lt;br /&gt;
*Vorbedignung&lt;br /&gt;
*verbale Semantik&lt;br /&gt;
*Variable&lt;br /&gt;
*Variablenparameter&lt;br /&gt;
*Verwaltungsinformation&lt;br /&gt;
*Vektor / Matrix&lt;br /&gt;
*Verschmelzen&lt;br /&gt;
*Verebung&lt;br /&gt;
*Vererbungshierarchie&lt;br /&gt;
*Vollständige Induktion&lt;br /&gt;
&lt;br /&gt;
=W=&lt;br /&gt;
&lt;br /&gt;
*Wert&lt;br /&gt;
*Werteparameter&lt;br /&gt;
*while-Schleife&lt;br /&gt;
*Wurzel&lt;br /&gt;
&lt;br /&gt;
=X=&lt;br /&gt;
&lt;br /&gt;
=Y=&lt;br /&gt;
&lt;br /&gt;
=Z=&lt;br /&gt;
&lt;br /&gt;
*Zeitkomplexität&lt;br /&gt;
*Zuweisung&lt;br /&gt;
*Zuweisung (Array)&lt;br /&gt;
*Zweierkomplement&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Byte&amp;diff=1215</id>
		<title>Byte</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Byte&amp;diff=1215"/>
				<updated>2016-04-20T14:28:26Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Verwendungszweck */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein '''Byte''' ist sowohl eine [[Bitfolge]] von acht [[Bit | Bits]], als auch der [[primitive Datentyp]] in Java, der genau acht Bit groß ist.&lt;br /&gt;
&lt;br /&gt;
=Byte als Javadatentyp=&lt;br /&gt;
&lt;br /&gt;
==Aufbau==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
byte Name = Zahl;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Schlüsselwort===&lt;br /&gt;
*byte&lt;br /&gt;
&lt;br /&gt;
===Verwendungszweck===&lt;br /&gt;
Byte wird verwendet, um sehr kleine ganze Zahlen zu speichern. Der Wertebereich leigt bei -128 bis 127. Ansonsten verhält sich byte wie [[Short | short]], [[Integer | int]] oder [[Long | long]], benötigen jedoch 8 Bit Speicherplatz.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
byte Zahl1 = 50;&lt;br /&gt;
short Zahl2 = -73;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Byte&amp;diff=1214</id>
		<title>Byte</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Byte&amp;diff=1214"/>
				<updated>2016-04-20T14:27:56Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein '''Byte''' ist sowohl eine [[Bitfolge]] von acht [[Bit | Bits]], als auch der [[primitive Datentyp]] in Java, der genau acht Bit groß ist.&lt;br /&gt;
&lt;br /&gt;
=Byte als Javadatentyp=&lt;br /&gt;
&lt;br /&gt;
==Aufbau==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
byte Name = Zahl;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Schlüsselwort===&lt;br /&gt;
*byte&lt;br /&gt;
&lt;br /&gt;
===Verwendungszweck===&lt;br /&gt;
Short wird verwendet, um sehr kleine ganze Zahlen zu speichern. Der Wertebereich leigt bei -128 bis 127. Ansonsten verhält sich byte wie [[Short | short]], [[Integer | int]] oder [[Long | long]], benötigen jedoch 8 Bit Speicherplatz.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
byte Zahl1 = 50;&lt;br /&gt;
short Zahl2 = -73;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Short&amp;diff=1213</id>
		<title>Short</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Short&amp;diff=1213"/>
				<updated>2016-04-20T14:26:19Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
short Name = Zahl;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
*short&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
Short wird verwendet, um kleine ganze Zahlen zu speichern. Der Wertebereich leigt bei -32.768 bis 32.767. Ansonsten verhält sich short wie [[Byte | byte]], [[Integer | int]] oder [[Long | long]], benötigt jedoch 16 bit Speicherplatz.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
short Zahl1 = 50;&lt;br /&gt;
short Zahl2 = -7000;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Double&amp;diff=1212</id>
		<title>Double</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Double&amp;diff=1212"/>
				<updated>2016-04-20T14:22:56Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
double Name = Kommazahl oder Zahl mit einem abschließendem D oder d;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
&lt;br /&gt;
*double&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
&lt;br /&gt;
Der Typ Double wird verwendet um Gleitkommazahlen zu speichern. Der Wertebereich liegt bei +/-4,9*10&amp;lt;sup&amp;gt;-324&amp;lt;/sup&amp;gt; bis +/-1,7*10&amp;lt;sup&amp;gt;+308. Es werden 64 Bit SPeicherplatz benötigt. Double wegen ihrer doppelten Genauigkeit im Vergleich zu float eher verwendet. Eine Zahl wird vom Compiuler als double interpretiert, wenn sie eine Kommazahl ist oder wenn ein D oder d an eiejnr Zahl angefügt wird. Der Buchstaben E (oder e) kann als Exponet verwendet werden. xEy entspricht x*10&amp;lt;sup&amp;gt;y&amp;lt;/sup&amp;gt;. &lt;br /&gt;
=Beispiele=&lt;br /&gt;
&amp;lt;source lang = &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
double Zahl1 = 500.0154;&lt;br /&gt;
double Zahl2 = -1337D;&lt;br /&gt;
double Zahl3 = 3.14E5;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Float&amp;diff=1211</id>
		<title>Float</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Float&amp;diff=1211"/>
				<updated>2016-04-20T14:19:39Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
float Name = (Komma-)Zahl mit einem abschließendem F oder f;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
&lt;br /&gt;
*float&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
&lt;br /&gt;
Der Typ Float wird verwendet um Gleitkommazahlen zu speichern. Der Wertebereich liegt bei +/- 1,4*10&amp;lt;sup&amp;gt;-45&amp;lt;/sup&amp;gt; bis +/-3,4*10&amp;lt;sup&amp;gt;+38&amp;lt;/sup&amp;gt;. Es werden 32 Bit Speicherpaltz benötigt. Der Typ Float wird wegen seiner Ungenauigkeit seltener verwendet als der artverwandte Typ [[Double| double]]. Werte von Float-Variablen müssen expliziet mit F oder f angegeben werden, ansonsten werden diese als double interpretiert. Der Buchstaben E (oder e) kann als Exponet verwendet werden. xEy entspricht x*10&amp;lt;sup&amp;gt;y&amp;lt;/sup&amp;gt;. &lt;br /&gt;
=Beispiele=&lt;br /&gt;
&amp;lt;source lang = &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
float Zahl1 = 500.0154F;&lt;br /&gt;
float Zahl2 = -1337F;&lt;br /&gt;
float Zahl3 = 3.14E5F;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Float&amp;diff=1210</id>
		<title>Float</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Float&amp;diff=1210"/>
				<updated>2016-04-20T14:14:37Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
float Name = (Komma-)Zahl mit einem abschließendem F oder f;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
&lt;br /&gt;
*float&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
&lt;br /&gt;
Der Typ Float wird verwendet um Gleitkommazahlen zu speichern. Der Wertebereich liegt bei +/- 1,4*10&amp;lt;sup&amp;gt;-45&amp;lt;/sup&amp;gt; bis +/-3,4*10&amp;lt;sup&amp;gt;+38&amp;lt;/sup&amp;gt;. Der Typ Float wird wegen seiner Ungenauigkeit seltener verwendet als der artverwandte Typ [[Double| double]]. Werte von Float-Variablen müssen expliziet mit F oder f angegeben werden, ansonsten werden diese als double interpretiert. Der Buchstaben E (oder e) kann als Exponet verwendet werden. xEy entspricht x*10&amp;lt;sup&amp;gt;y&amp;lt;/sup&amp;gt;. &lt;br /&gt;
=Beispiele=&lt;br /&gt;
&amp;lt;source lang = &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
float Zahl1 = 500.0154LF;&lt;br /&gt;
float Zahl2 = -1337F;&lt;br /&gt;
float Zahl3 = 3.14E5F;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Long&amp;diff=1209</id>
		<title>Long</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Long&amp;diff=1209"/>
				<updated>2016-04-20T14:10:34Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
long Name = Zahl mit einem abschließendem L oder l;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
&lt;br /&gt;
*long&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
&lt;br /&gt;
Der Typ long wird verwendet um ganze Zahlen zu speichern. Der Wertebereich liegt bei -2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt; bis 2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt;-1. Integer verhalten sich genau so wie [[Byte |byte]], [[Short | short]] oder [[Integer| int]], benötigen jedoch 64 bit Speicherplatz. Zahlenwerte einer Longvariablen müssen expliziet mit L oder l angegeben werden, ansonsten werden die Werte als integer verwedendet, was zu Fehlern führen kann.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&amp;lt;source lang = &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
long Zahl1 = 500L;&lt;br /&gt;
long Zahl2 = -1337L;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Long&amp;diff=1208</id>
		<title>Long</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Long&amp;diff=1208"/>
				<updated>2016-04-20T13:44:16Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Verwendungszweck */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
long Name = Zahl mit einem abschließendem L oder l;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
&lt;br /&gt;
*long&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
&lt;br /&gt;
Der Typ long wird verwendet um ganze Zahlen zu speichern. Der Wertebereich liegt bei -2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt; bis 2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt;-1. Integer verhalten sich genau so wie [[Byte |byte]], [[Short | short]] oder [[Integer| int]], benötigen jedoch 64 bit Speicherplatz.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&amp;lt;source lang = &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
long Zahl1 = 500L;&lt;br /&gt;
long Zahl2 = -1337L;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Integer&amp;diff=1207</id>
		<title>Integer</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Integer&amp;diff=1207"/>
				<updated>2016-04-20T13:44:06Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Verwendungszweck */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int Name = Zahl;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
&lt;br /&gt;
*int&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
&lt;br /&gt;
Integer werden verwendet um ganze Zahlen zu speichern. Der Typ Integer wird dabei am meisten benutzt. Der Wertebereich liegt bei -2.147.483.648 bis 2.147.483.647. Integer verhalten sich genau so wie [[Byte |byte]], [[Short | short]] oder [[Long | long]], benötigen jedoch 32 bit Speicherplatz.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&amp;lt;source lang = &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int Zahl1 = 500;&lt;br /&gt;
int Zahl2 = -1337;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Long&amp;diff=1206</id>
		<title>Long</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Long&amp;diff=1206"/>
				<updated>2016-04-20T13:43:48Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
long Name = Zahl mit einem abschließendem L oder l;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
&lt;br /&gt;
*long&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
&lt;br /&gt;
Der Typ long wird verwendet um ganze Zahlen zu speichern. Der Wertebereich liegt bei -2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt; bis 2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt;-1. Integer verhalten sich genau so wie [[Byte |byte]], [[Short | short]] und [[Integer| int]], benötigen jedoch 64 bit Speicherplatz.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&amp;lt;source lang = &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
long Zahl1 = 500L;&lt;br /&gt;
long Zahl2 = -1337L;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Long&amp;diff=1205</id>
		<title>Long</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Long&amp;diff=1205"/>
				<updated>2016-04-20T13:42:58Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
long Name = Zahl mit einem abschließendem L oder l;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
&lt;br /&gt;
*long&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
&lt;br /&gt;
Der Typ long wird verwendet um ganze Zahlen zu speichern. Der Wertebereich liegt bei -2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt; bis 2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt;-1. Integer verhalten sich genau so wie [[Byte |byte]], [[Short | short]] und [[Long | long]], benötigen jedoch 64 bit Speicherplatz.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&amp;lt;source lang = &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
long Zahl1 = 500L;&lt;br /&gt;
long Zahl2 = -1337L;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Integer&amp;diff=1204</id>
		<title>Integer</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Integer&amp;diff=1204"/>
				<updated>2016-04-20T13:37:17Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Beispiele */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int Name = Zahl;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
&lt;br /&gt;
*int&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
&lt;br /&gt;
Integer werden verwendet um ganze Zahlen zu speichern. Der Typ Integer wird dabei am meisten benutzt. Der Wertebereich liegt bei -2.147.483.648 bis 2.147.483.647. Integer verhalten sich genau so wie [[Byte |byte]], [[Short | short]] und [[Long | long]], benötigen jedoch 32 bit Speicherplatz.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&amp;lt;source lang = &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int Zahl1 = 500;&lt;br /&gt;
int Zahl2 = -1337;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Integer&amp;diff=1203</id>
		<title>Integer</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Integer&amp;diff=1203"/>
				<updated>2016-04-20T13:36:47Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int Name = Zahl;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
&lt;br /&gt;
*int&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
&lt;br /&gt;
Integer werden verwendet um ganze Zahlen zu speichern. Der Typ Integer wird dabei am meisten benutzt. Der Wertebereich liegt bei -2.147.483.648 bis 2.147.483.647. Integer verhalten sich genau so wie [[Byte |byte]], [[Short | short]] und [[Long | long]], benötigen jedoch 32 bit Speicherplatz.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&amp;lt;source int = &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
int Zahl1 = 500;&lt;br /&gt;
int Zahl2 = -1337;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Short&amp;diff=1202</id>
		<title>Short</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Short&amp;diff=1202"/>
				<updated>2016-04-20T13:29:03Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
short Name = Zahl;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
*short&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
Short wird verwendet, um kleine ganze Zahlen zu speichern. Der Wertebereich leigt bei -32.768 bis 32.767. Ansonsten verhalten sich short wie [[Byte | byte]], [[Integer | int]] oder [[Long | long]], benötigen aber 16 bit Speicherplatz.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
short Zahl1 = 50;&lt;br /&gt;
short Zahl2 = -7000;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Short&amp;diff=1201</id>
		<title>Short</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Short&amp;diff=1201"/>
				<updated>2016-04-20T13:10:01Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Verwendungszweck */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
short Name = Zahl;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
*short&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
Short wird verwendet, um kleine ganze Zahlen zu speichern. Der Wertebereich leigt bei -32.768 bis 32.767. Ansonsten verhalten sich short wie [[Byte | byte]], [[Integer | int]] oder [[Long | long]].&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
short Zahl1 = 50;&lt;br /&gt;
short Zahl2 = -7000;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Short&amp;diff=1200</id>
		<title>Short</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Short&amp;diff=1200"/>
				<updated>2016-04-20T13:09:48Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Verwendungszweck */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
short Name = Zahl;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
*short&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
Short wird verwendet, um kleine ganze Zahlen zu speichern. Der Wertebereich leigt bei -32.768 bis 32.767. Ansonsten verhalten sich short wie [[Byte | byte]] [[Integer | int]] oder [[Long | long]].&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
short Zahl1 = 50;&lt;br /&gt;
short Zahl2 = -7000;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Short&amp;diff=1199</id>
		<title>Short</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Short&amp;diff=1199"/>
				<updated>2016-04-20T13:01:46Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
short Name = Zahl;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
*short&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
Short wird verwendet, um kleine ganze Zahlen zu speichern. Der Wertebereich leigt bei -32.768 bis 32.767. Ansonsten verhalten sich short wie [[Integer | int]] oder [[Long | long]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang= &amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
short Zahl1 = 50;&lt;br /&gt;
short Zahl2 = -7000;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Character&amp;diff=1198</id>
		<title>Character</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Character&amp;diff=1198"/>
				<updated>2016-04-20T12:33:49Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
char Name = Unicodezeichen&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
&lt;br /&gt;
* char&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
&lt;br /&gt;
Chars werden verwendet um Unicodezeichen im Java-Code zu speichern. Dafür besitzen Chars einen Wertebreich von 0 bis 65.535.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
char Zeichen1 = 'a';&lt;br /&gt;
char Zeichen2 = '\n';&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Character&amp;diff=1197</id>
		<title>Character</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Character&amp;diff=1197"/>
				<updated>2016-04-20T12:33:36Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Aufbau */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
char Name = Unicodezeichen&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
&lt;br /&gt;
* char&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
&lt;br /&gt;
Chars werden verwendet um Unicodezeichen im Java-Code zu speichern. Dafür besitzen Chars einen Wertebreich von 0 bis 65.535.&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
char Zeichen1 = 'a';&lt;br /&gt;
char Zeichen2 = '\n';&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Character&amp;diff=1196</id>
		<title>Character</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Character&amp;diff=1196"/>
				<updated>2016-04-20T11:57:09Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Schlüsselwort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aufbau=&lt;br /&gt;
==Schlüsselwort==&lt;br /&gt;
&lt;br /&gt;
* char&lt;br /&gt;
&lt;br /&gt;
==Verwendungszweck==&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Datentyp&amp;diff=1195</id>
		<title>Datentyp</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Datentyp&amp;diff=1195"/>
				<updated>2016-04-20T11:43:00Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Objektdatentypen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Datentyp''' ist die Bezeichnung für die Interpretation und Semantik einer Menge von Daten. Zu einem Datentyp gehören Informationen wie Größe, Struktur und erlaubte [[Methode | Methoden]] und [[Operator | Operatoren]].&lt;br /&gt;
&lt;br /&gt;
Zu den Datentypen in [[Java]] gehört die Unterscheidung von '''primitiven Datentypen''' und '''Objektdatentypen'''.&lt;br /&gt;
&lt;br /&gt;
= Primitive Datentypen =&lt;br /&gt;
&lt;br /&gt;
Diese Datentypen werden als primitiv bezeichnet, da sie die grundlegenden Bausteine für andere Datentypen sind. Sie alle repräsentieren numerische Werte.&lt;br /&gt;
&lt;br /&gt;
Die Größe, Struktur und Interpretation der primitiven Datentypen ist im Java-Standard vorgegeben (siehe: https://de.wikibooks.org/wiki/Java_Standard:_Primitive_Datentypen):&lt;br /&gt;
 {| class = &amp;quot;wikitable&amp;quot; width=100% align = &amp;quot;center&amp;quot;&lt;br /&gt;
 ! Datentyp!! Größe!! Wertebereich&lt;br /&gt;
|-&lt;br /&gt;
|[[Boolean | boolean]] || undefiniert|| true / false&lt;br /&gt;
|-&lt;br /&gt;
|[[Char | char]]|| 16 Bit || 0 ... 65.535&lt;br /&gt;
|-&lt;br /&gt;
|[[Byte | byte]]|| 8 Bit || -128 ... 127&lt;br /&gt;
|-&lt;br /&gt;
|[[Short | short]]|| 16 Bit || -32.768 ... 32.767&lt;br /&gt;
|-&lt;br /&gt;
|[[Integer | int]]|| 32 Bit || -2.147.483.648 ... 2.147.483.647&lt;br /&gt;
|-&lt;br /&gt;
|[[Long | long]]|| 64 Bit || -2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt; bis 2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt;-1&lt;br /&gt;
|-&lt;br /&gt;
|[[Float | float]] || 32 Bit || +/- 1,4*10&amp;lt;sup&amp;gt;-45&amp;lt;/sup&amp;gt; ... +/-3,4*10&amp;lt;sup&amp;gt;+38&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[Double | double]] || 64 Bit || +/-4,9*10&amp;lt;sup&amp;gt;-324&amp;lt;/sup&amp;gt; ... +/-1,7*10&amp;lt;sup&amp;gt;+308&amp;lt;/sup&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Variablen primitiver Datentypen werden beim Aufrufen von Funktionen per [[Call by Value]] übergeben. Das heißt, dass Veränderungen der [[Parametervariable|Parametervariablen]] einer Funktion keinen Einfluss auf die übergebenen Variablen haben.&lt;br /&gt;
&lt;br /&gt;
= Objektdatentypen =&lt;br /&gt;
&lt;br /&gt;
Alle nicht primitiven Datentypen werden in Java durch ihre eigene [[Klasse]] definiert. Diese sind daher immer eine Kombination aus diversen primitiven oder anderen Objektdatentypen. Wie diese Daten zusammengesetzt werden und was sie bedeuten, ist im Quellcode zu definieren und zu dokumentieren.&lt;br /&gt;
&lt;br /&gt;
Zudem gibt es viele nützliche Objektdatentypen in der Java-Standard-Bibliothek (z.B. [[String]] oder [[Array]]), die nicht zusätzlich in das Programm [[Import | importiert]] werden müssen, sondern immer zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&lt;br /&gt;
Eine Position auf der 2-Dimensionalen Ebene ist durch zwei '''double''' zu repräsentieren. Entsprechend wird dem ersten der '''double''' die Semantik der '''x'''-Koordinate und dem zweiten die Semantik der '''y'''-Koordinate zugewiesen. Dies kann in Java z.B. folgendermaßen geschehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Coordinate {&lt;br /&gt;
    public double x;&lt;br /&gt;
    public double y;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Datenstrukturen =&lt;br /&gt;
&lt;br /&gt;
Wie komplexe Datenstrukturen zusammengesetzt und verwendet werden können, findet man in ihren eigenen entsprechenden Artikeln:&lt;br /&gt;
&lt;br /&gt;
* [[Baum]]&lt;br /&gt;
* [[Liste]]&lt;br /&gt;
* [[Heap]]&lt;br /&gt;
&lt;br /&gt;
Die Aufgabe eines Programmierers besteht jedoch meistens darin, aus den verschiedenen Datentypen und anderen Informationen seinen eigenen Datentyp zu basteln, der das Problem und die Lösungswege am besten repräsentiert.&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1115</id>
		<title>Glossar (alphabetisch)</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1115"/>
				<updated>2016-04-10T13:45:05Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''!! Nur einsortiert, teilweise alphabetisch!!''&lt;br /&gt;
&lt;br /&gt;
=A=&lt;br /&gt;
&lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[abstrakte Klasse]]&lt;br /&gt;
*[[abstrakte Methode]]&lt;br /&gt;
*[[Abstraktion]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Algemeinheit]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[ASCII]]&lt;br /&gt;
*[[Attritbut]]&lt;br /&gt;
*[[Aufwand]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[AVL-Baum]]&lt;br /&gt;
&lt;br /&gt;
=B=&lt;br /&gt;
&lt;br /&gt;
*balancierter Baum&lt;br /&gt;
*Bäume&lt;br /&gt;
*Bedeutung Gleichzeichen&lt;br /&gt;
*bedingte Anweisung&lt;br /&gt;
*Bedingung&lt;br /&gt;
*Betriebssystem&lt;br /&gt;
*binärer Baum&lt;br /&gt;
*binärer Suchbaum&lt;br /&gt;
*Binärzahlen&lt;br /&gt;
*Bit&lt;br /&gt;
*Bitfolge&lt;br /&gt;
*Blatt&lt;br /&gt;
*Block&lt;br /&gt;
*Boolean&lt;br /&gt;
*Bool'sche Algebra&lt;br /&gt;
*break&lt;br /&gt;
*Breitendurchlauf&lt;br /&gt;
*Byte&lt;br /&gt;
*Byte (Javadatentyp)&lt;br /&gt;
&lt;br /&gt;
=C=&lt;br /&gt;
&lt;br /&gt;
*call by reference&lt;br /&gt;
*call by value&lt;br /&gt;
*Char&lt;br /&gt;
*Computer&lt;br /&gt;
*Compiler&lt;br /&gt;
*continue&lt;br /&gt;
*CPU&lt;br /&gt;
&lt;br /&gt;
=D=&lt;br /&gt;
&lt;br /&gt;
*Datenverarbeitung&lt;br /&gt;
*Darstellung natürlicher Zahlen&lt;br /&gt;
*Darstellung ganzer Zahlen&lt;br /&gt;
*Determinismus&lt;br /&gt;
*Determiniertheit&lt;br /&gt;
*denotationale Semantik&lt;br /&gt;
*Deklaration&lt;br /&gt;
*Datentyp&lt;br /&gt;
*Double&lt;br /&gt;
*do-while-Schleife&lt;br /&gt;
*Datenstruktur&lt;br /&gt;
*Dimensierung&lt;br /&gt;
*Dynamische Datenstruktur&lt;br /&gt;
*doppeltverkettete Liste&lt;br /&gt;
&lt;br /&gt;
=E=&lt;br /&gt;
&lt;br /&gt;
*Einzelproblem&lt;br /&gt;
*Effizienz&lt;br /&gt;
*Entwurfsmethodik&lt;br /&gt;
*E-/A-Medien&lt;br /&gt;
*Ein- und Ausgabe&lt;br /&gt;
*Elementaroperationen&lt;br /&gt;
*Einfache Grundoperationen&lt;br /&gt;
*externes Sortieren&lt;br /&gt;
*Einfügen&lt;br /&gt;
*extends&lt;br /&gt;
&lt;br /&gt;
=F=&lt;br /&gt;
&lt;br /&gt;
*Festpunktzahlen&lt;br /&gt;
*final&lt;br /&gt;
*Float&lt;br /&gt;
*for-Schleife&lt;br /&gt;
*Funktion&lt;br /&gt;
*Funktionale Programmierung&lt;br /&gt;
*funktionslokal&lt;br /&gt;
&lt;br /&gt;
=G=&lt;br /&gt;
&lt;br /&gt;
*gerichteter Graph&lt;br /&gt;
*ggt nach Euklid&lt;br /&gt;
*Gleitpunktzahl&lt;br /&gt;
*globale Variablen&lt;br /&gt;
*Graph&lt;br /&gt;
&lt;br /&gt;
=H=&lt;br /&gt;
&lt;br /&gt;
*Hardware&lt;br /&gt;
*Heap&lt;br /&gt;
*Heapify&lt;br /&gt;
*Heapsort&lt;br /&gt;
*Hexadezimalzahlen&lt;br /&gt;
&lt;br /&gt;
=I=&lt;br /&gt;
&lt;br /&gt;
*Informatik&lt;br /&gt;
*Imperative Programmierung&lt;br /&gt;
*Informationsverarbeitung&lt;br /&gt;
*Interpretation&lt;br /&gt;
*Initialisierung&lt;br /&gt;
*Integer&lt;br /&gt;
*Implizite Typanpassung&lt;br /&gt;
*Iteration&lt;br /&gt;
*Internes Sortieren&lt;br /&gt;
*Instanz&lt;br /&gt;
*Interface&lt;br /&gt;
*inorder-Durchlauf&lt;br /&gt;
&lt;br /&gt;
=J=&lt;br /&gt;
&lt;br /&gt;
*Java&lt;br /&gt;
*Java-Programm&lt;br /&gt;
&lt;br /&gt;
=K=&lt;br /&gt;
&lt;br /&gt;
*Kommunikationsprotokoll&lt;br /&gt;
*Kreuzprodukt&lt;br /&gt;
*Kurzformen&lt;br /&gt;
*konstruierter, komplexer Datentyp&lt;br /&gt;
*Konstante&lt;br /&gt;
*Kontrollstruktur&lt;br /&gt;
*Kommunikation über Parameter&lt;br /&gt;
*Klasse&lt;br /&gt;
*Klassendefinition&lt;br /&gt;
*Konstruktor&lt;br /&gt;
*Klassenatribute/-methoden&lt;br /&gt;
*Knoten&lt;br /&gt;
&lt;br /&gt;
=L=&lt;br /&gt;
&lt;br /&gt;
*Laufvariable&lt;br /&gt;
*lineare Liste&lt;br /&gt;
*Liste&lt;br /&gt;
*Logische Programmierung&lt;br /&gt;
*Long&lt;br /&gt;
&lt;br /&gt;
=M=&lt;br /&gt;
&lt;br /&gt;
*main-Methode&lt;br /&gt;
*Maschinensprache&lt;br /&gt;
*Mengen&lt;br /&gt;
*Methode&lt;br /&gt;
*Methodendefinition&lt;br /&gt;
&lt;br /&gt;
=N=&lt;br /&gt;
&lt;br /&gt;
*Nachbedingung&lt;br /&gt;
*Nebenläufiger Algorithmus&lt;br /&gt;
*new-Operator&lt;br /&gt;
*Nibble&lt;br /&gt;
*null&lt;br /&gt;
*Numerik&lt;br /&gt;
&lt;br /&gt;
=O=&lt;br /&gt;
&lt;br /&gt;
*O-Notation&lt;br /&gt;
*Objekt&lt;br /&gt;
*Objektorientierte Programmierung&lt;br /&gt;
*Operation&lt;br /&gt;
*operationale Semantik&lt;br /&gt;
&lt;br /&gt;
=P=&lt;br /&gt;
&lt;br /&gt;
*Problemklasse&lt;br /&gt;
*Programmierung&lt;br /&gt;
*Programm&lt;br /&gt;
*Problembeschreibung&lt;br /&gt;
*Pseudocode&lt;br /&gt;
*Parallele Ausführung&lt;br /&gt;
*Programmiersprache&lt;br /&gt;
*Programmierparadigma&lt;br /&gt;
*Primitive Datentypen&lt;br /&gt;
*Priotitäten von Operatoren&lt;br /&gt;
*Prozedur&lt;br /&gt;
*Parameter&lt;br /&gt;
*prozedurale (funkt.) Abstraktion&lt;br /&gt;
*public&lt;br /&gt;
*private&lt;br /&gt;
*Parameterübergabe&lt;br /&gt;
*protected&lt;br /&gt;
*Polymorphie&lt;br /&gt;
*Punkt-Operator&lt;br /&gt;
*preorder&lt;br /&gt;
*postorder&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
&lt;br /&gt;
*Quelltext/-code&lt;br /&gt;
&lt;br /&gt;
=R=&lt;br /&gt;
&lt;br /&gt;
*Raumkomplexität&lt;br /&gt;
*Rechner&lt;br /&gt;
*Rechensysteme&lt;br /&gt;
*Repräsentation (von Daten)&lt;br /&gt;
*Rastergrafik&lt;br /&gt;
*Relation&lt;br /&gt;
*Robustheit&lt;br /&gt;
*Rückgabe&lt;br /&gt;
*Rückgabewert&lt;br /&gt;
*Rekursive Funktion&lt;br /&gt;
*Referenzen&lt;br /&gt;
&lt;br /&gt;
=S=&lt;br /&gt;
&lt;br /&gt;
*Syntax&lt;br /&gt;
*Semantik&lt;br /&gt;
*Sortieren&lt;br /&gt;
*Suchen&lt;br /&gt;
*Software&lt;br /&gt;
*Speicher&lt;br /&gt;
*Standardformate&lt;br /&gt;
*Spezifikation&lt;br /&gt;
*Sequentieller Algorithmus&lt;br /&gt;
*Syntaxdiagramm&lt;br /&gt;
*Short&lt;br /&gt;
*Speicheraddresse&lt;br /&gt;
*Steuerzeichen&lt;br /&gt;
*String&lt;br /&gt;
*Streng getypte Sprache&lt;br /&gt;
*Sequenz&lt;br /&gt;
*switch&lt;br /&gt;
*Schleife&lt;br /&gt;
*static&lt;br /&gt;
*Stack&lt;br /&gt;
*Sortieralgorithmen&lt;br /&gt;
*Superklasse&lt;br /&gt;
*Subklasse&lt;br /&gt;
*Spezialisierung&lt;br /&gt;
*Schlangen (queue)&lt;br /&gt;
*Schlüsselwörter&lt;br /&gt;
&lt;br /&gt;
=T=&lt;br /&gt;
&lt;br /&gt;
*Teile und herrsche&lt;br /&gt;
*Texte (Darstellung)&lt;br /&gt;
*Terminierung&lt;br /&gt;
*Typkomplexität&lt;br /&gt;
*top-down Entwurf&lt;br /&gt;
*Terminierungsbedingung&lt;br /&gt;
*Türme von Hanoi&lt;br /&gt;
*Testklasse&lt;br /&gt;
*this&lt;br /&gt;
*Tiefendurchlauf&lt;br /&gt;
&lt;br /&gt;
=U=&lt;br /&gt;
&lt;br /&gt;
*Umrechnungsverfahren&lt;br /&gt;
*ungerichtete Graphen&lt;br /&gt;
*Unicode&lt;br /&gt;
*Unterprogramm&lt;br /&gt;
&lt;br /&gt;
=V=&lt;br /&gt;
&lt;br /&gt;
*Verifikation (bzgl. Klassen)&lt;br /&gt;
*Virtuelle Maschine&lt;br /&gt;
*Vektorgrafik&lt;br /&gt;
*Vorzeichenbetragszahlen&lt;br /&gt;
*Vorgehensweise (Erstellung eines Programms)&lt;br /&gt;
*Vorbedignung&lt;br /&gt;
*verbale Semantik&lt;br /&gt;
*Variable&lt;br /&gt;
*Variablenparameter&lt;br /&gt;
*Verwaltungsinformation&lt;br /&gt;
*Vektor / Matrix&lt;br /&gt;
*Verschmelzen&lt;br /&gt;
*Verebung&lt;br /&gt;
*Vererbungshierarchie&lt;br /&gt;
*Vollständige Induktion&lt;br /&gt;
&lt;br /&gt;
=W=&lt;br /&gt;
&lt;br /&gt;
*Wert&lt;br /&gt;
*Werteparameter&lt;br /&gt;
*while-Schleife&lt;br /&gt;
*Wurzel&lt;br /&gt;
&lt;br /&gt;
=X=&lt;br /&gt;
&lt;br /&gt;
=Y=&lt;br /&gt;
&lt;br /&gt;
=Z=&lt;br /&gt;
&lt;br /&gt;
*Zeitkomplexität&lt;br /&gt;
*Zuweisung&lt;br /&gt;
*Zuweisung (Array)&lt;br /&gt;
*Zweierkomplement&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1114</id>
		<title>Glossar (alphabetisch)</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Glossar_(alphabetisch)&amp;diff=1114"/>
				<updated>2016-04-10T13:44:39Z</updated>
		
		<summary type="html">&lt;p&gt;Marius: /* Z */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''!! Nur einsortiert, nicht komplett alphabetisch (ab D)!!''&lt;br /&gt;
&lt;br /&gt;
=A=&lt;br /&gt;
&lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[abstrakte Klasse]]&lt;br /&gt;
*[[abstrakte Methode]]&lt;br /&gt;
*[[Abstraktion]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Algemeinheit]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[ASCII]]&lt;br /&gt;
*[[Attritbut]]&lt;br /&gt;
*[[Aufwand]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[AVL-Baum]]&lt;br /&gt;
&lt;br /&gt;
=B=&lt;br /&gt;
&lt;br /&gt;
*balancierter Baum&lt;br /&gt;
*Bäume&lt;br /&gt;
*Bedeutung Gleichzeichen&lt;br /&gt;
*bedingte Anweisung&lt;br /&gt;
*Bedingung&lt;br /&gt;
*Betriebssystem&lt;br /&gt;
*binärer Baum&lt;br /&gt;
*binärer Suchbaum&lt;br /&gt;
*Binärzahlen&lt;br /&gt;
*Bit&lt;br /&gt;
*Bitfolge&lt;br /&gt;
*Blatt&lt;br /&gt;
*Block&lt;br /&gt;
*Boolean&lt;br /&gt;
*Bool'sche Algebra&lt;br /&gt;
*break&lt;br /&gt;
*Breitendurchlauf&lt;br /&gt;
*Byte&lt;br /&gt;
*Byte (Javadatentyp)&lt;br /&gt;
&lt;br /&gt;
=C=&lt;br /&gt;
&lt;br /&gt;
*call by reference&lt;br /&gt;
*call by value&lt;br /&gt;
*Char&lt;br /&gt;
*Computer&lt;br /&gt;
*Compiler&lt;br /&gt;
*continue&lt;br /&gt;
*CPU&lt;br /&gt;
&lt;br /&gt;
=D=&lt;br /&gt;
&lt;br /&gt;
*Datenverarbeitung&lt;br /&gt;
*Darstellung natürlicher Zahlen&lt;br /&gt;
*Darstellung ganzer Zahlen&lt;br /&gt;
*Determinismus&lt;br /&gt;
*Determiniertheit&lt;br /&gt;
*denotationale Semantik&lt;br /&gt;
*Deklaration&lt;br /&gt;
*Datentyp&lt;br /&gt;
*Double&lt;br /&gt;
*do-while-Schleife&lt;br /&gt;
*Datenstruktur&lt;br /&gt;
*Dimensierung&lt;br /&gt;
*Dynamische Datenstruktur&lt;br /&gt;
*doppeltverkettete Liste&lt;br /&gt;
&lt;br /&gt;
=E=&lt;br /&gt;
&lt;br /&gt;
*Einzelproblem&lt;br /&gt;
*Effizienz&lt;br /&gt;
*Entwurfsmethodik&lt;br /&gt;
*E-/A-Medien&lt;br /&gt;
*Ein- und Ausgabe&lt;br /&gt;
*Elementaroperationen&lt;br /&gt;
*Einfache Grundoperationen&lt;br /&gt;
*externes Sortieren&lt;br /&gt;
*Einfügen&lt;br /&gt;
*extends&lt;br /&gt;
&lt;br /&gt;
=F=&lt;br /&gt;
&lt;br /&gt;
*Festpunktzahlen&lt;br /&gt;
*final&lt;br /&gt;
*Float&lt;br /&gt;
*for-Schleife&lt;br /&gt;
*Funktion&lt;br /&gt;
*Funktionale Programmierung&lt;br /&gt;
*funktionslokal&lt;br /&gt;
&lt;br /&gt;
=G=&lt;br /&gt;
&lt;br /&gt;
*gerichteter Graph&lt;br /&gt;
*ggt nach Euklid&lt;br /&gt;
*Gleitpunktzahl&lt;br /&gt;
*globale Variablen&lt;br /&gt;
*Graph&lt;br /&gt;
&lt;br /&gt;
=H=&lt;br /&gt;
&lt;br /&gt;
*Hardware&lt;br /&gt;
*Heap&lt;br /&gt;
*Heapify&lt;br /&gt;
*Heapsort&lt;br /&gt;
*Hexadezimalzahlen&lt;br /&gt;
&lt;br /&gt;
=I=&lt;br /&gt;
&lt;br /&gt;
*Informatik&lt;br /&gt;
*Imperative Programmierung&lt;br /&gt;
*Informationsverarbeitung&lt;br /&gt;
*Interpretation&lt;br /&gt;
*Initialisierung&lt;br /&gt;
*Integer&lt;br /&gt;
*Implizite Typanpassung&lt;br /&gt;
*Iteration&lt;br /&gt;
*Internes Sortieren&lt;br /&gt;
*Instanz&lt;br /&gt;
*Interface&lt;br /&gt;
*inorder-Durchlauf&lt;br /&gt;
&lt;br /&gt;
=J=&lt;br /&gt;
&lt;br /&gt;
*Java&lt;br /&gt;
*Java-Programm&lt;br /&gt;
&lt;br /&gt;
=K=&lt;br /&gt;
&lt;br /&gt;
*Kommunikationsprotokoll&lt;br /&gt;
*Kreuzprodukt&lt;br /&gt;
*Kurzformen&lt;br /&gt;
*konstruierter, komplexer Datentyp&lt;br /&gt;
*Konstante&lt;br /&gt;
*Kontrollstruktur&lt;br /&gt;
*Kommunikation über Parameter&lt;br /&gt;
*Klasse&lt;br /&gt;
*Klassendefinition&lt;br /&gt;
*Konstruktor&lt;br /&gt;
*Klassenatribute/-methoden&lt;br /&gt;
*Knoten&lt;br /&gt;
&lt;br /&gt;
=L=&lt;br /&gt;
&lt;br /&gt;
*Laufvariable&lt;br /&gt;
*lineare Liste&lt;br /&gt;
*Liste&lt;br /&gt;
*Logische Programmierung&lt;br /&gt;
*Long&lt;br /&gt;
&lt;br /&gt;
=M=&lt;br /&gt;
&lt;br /&gt;
*main-Methode&lt;br /&gt;
*Maschinensprache&lt;br /&gt;
*Mengen&lt;br /&gt;
*Methode&lt;br /&gt;
*Methodendefinition&lt;br /&gt;
&lt;br /&gt;
=N=&lt;br /&gt;
&lt;br /&gt;
*Nachbedingung&lt;br /&gt;
*Nebenläufiger Algorithmus&lt;br /&gt;
*new-Operator&lt;br /&gt;
*Nibble&lt;br /&gt;
*null&lt;br /&gt;
*Numerik&lt;br /&gt;
&lt;br /&gt;
=O=&lt;br /&gt;
&lt;br /&gt;
*O-Notation&lt;br /&gt;
*Objekt&lt;br /&gt;
*Objektorientierte Programmierung&lt;br /&gt;
*Operation&lt;br /&gt;
*operationale Semantik&lt;br /&gt;
&lt;br /&gt;
=P=&lt;br /&gt;
&lt;br /&gt;
*Problemklasse&lt;br /&gt;
*Programmierung&lt;br /&gt;
*Programm&lt;br /&gt;
*Problembeschreibung&lt;br /&gt;
*Pseudocode&lt;br /&gt;
*Parallele Ausführung&lt;br /&gt;
*Programmiersprache&lt;br /&gt;
*Programmierparadigma&lt;br /&gt;
*Primitive Datentypen&lt;br /&gt;
*Priotitäten von Operatoren&lt;br /&gt;
*Prozedur&lt;br /&gt;
*Parameter&lt;br /&gt;
*prozedurale (funkt.) Abstraktion&lt;br /&gt;
*public&lt;br /&gt;
*private&lt;br /&gt;
*Parameterübergabe&lt;br /&gt;
*protected&lt;br /&gt;
*Polymorphie&lt;br /&gt;
*Punkt-Operator&lt;br /&gt;
*preorder&lt;br /&gt;
*postorder&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
&lt;br /&gt;
*Quelltext/-code&lt;br /&gt;
&lt;br /&gt;
=R=&lt;br /&gt;
&lt;br /&gt;
*Raumkomplexität&lt;br /&gt;
*Rechner&lt;br /&gt;
*Rechensysteme&lt;br /&gt;
*Repräsentation (von Daten)&lt;br /&gt;
*Rastergrafik&lt;br /&gt;
*Relation&lt;br /&gt;
*Robustheit&lt;br /&gt;
*Rückgabe&lt;br /&gt;
*Rückgabewert&lt;br /&gt;
*Rekursive Funktion&lt;br /&gt;
*Referenzen&lt;br /&gt;
&lt;br /&gt;
=S=&lt;br /&gt;
&lt;br /&gt;
*Syntax&lt;br /&gt;
*Semantik&lt;br /&gt;
*Sortieren&lt;br /&gt;
*Suchen&lt;br /&gt;
*Software&lt;br /&gt;
*Speicher&lt;br /&gt;
*Standardformate&lt;br /&gt;
*Spezifikation&lt;br /&gt;
*Sequentieller Algorithmus&lt;br /&gt;
*Syntaxdiagramm&lt;br /&gt;
*Short&lt;br /&gt;
*Speicheraddresse&lt;br /&gt;
*Steuerzeichen&lt;br /&gt;
*String&lt;br /&gt;
*Streng getypte Sprache&lt;br /&gt;
*Sequenz&lt;br /&gt;
*switch&lt;br /&gt;
*Schleife&lt;br /&gt;
*static&lt;br /&gt;
*Stack&lt;br /&gt;
*Sortieralgorithmen&lt;br /&gt;
*Superklasse&lt;br /&gt;
*Subklasse&lt;br /&gt;
*Spezialisierung&lt;br /&gt;
*Schlangen (queue)&lt;br /&gt;
*Schlüsselwörter&lt;br /&gt;
&lt;br /&gt;
=T=&lt;br /&gt;
&lt;br /&gt;
*Teile und herrsche&lt;br /&gt;
*Texte (Darstellung)&lt;br /&gt;
*Terminierung&lt;br /&gt;
*Typkomplexität&lt;br /&gt;
*top-down Entwurf&lt;br /&gt;
*Terminierungsbedingung&lt;br /&gt;
*Türme von Hanoi&lt;br /&gt;
*Testklasse&lt;br /&gt;
*this&lt;br /&gt;
*Tiefendurchlauf&lt;br /&gt;
&lt;br /&gt;
=U=&lt;br /&gt;
&lt;br /&gt;
*Umrechnungsverfahren&lt;br /&gt;
*ungerichtete Graphen&lt;br /&gt;
*Unicode&lt;br /&gt;
*Unterprogramm&lt;br /&gt;
&lt;br /&gt;
=V=&lt;br /&gt;
&lt;br /&gt;
*Verifikation (bzgl. Klassen)&lt;br /&gt;
*Virtuelle Maschine&lt;br /&gt;
*Vektorgrafik&lt;br /&gt;
*Vorzeichenbetragszahlen&lt;br /&gt;
*Vorgehensweise (Erstellung eines Programms)&lt;br /&gt;
*Vorbedignung&lt;br /&gt;
*verbale Semantik&lt;br /&gt;
*Variable&lt;br /&gt;
*Variablenparameter&lt;br /&gt;
*Verwaltungsinformation&lt;br /&gt;
*Vektor / Matrix&lt;br /&gt;
*Verschmelzen&lt;br /&gt;
*Verebung&lt;br /&gt;
*Vererbungshierarchie&lt;br /&gt;
*Vollständige Induktion&lt;br /&gt;
&lt;br /&gt;
=W=&lt;br /&gt;
&lt;br /&gt;
*Wert&lt;br /&gt;
*Werteparameter&lt;br /&gt;
*while-Schleife&lt;br /&gt;
*Wurzel&lt;br /&gt;
&lt;br /&gt;
=X=&lt;br /&gt;
&lt;br /&gt;
=Y=&lt;br /&gt;
&lt;br /&gt;
=Z=&lt;br /&gt;
&lt;br /&gt;
*Zeitkomplexität&lt;br /&gt;
*Zuweisung&lt;br /&gt;
*Zuweisung (Array)&lt;br /&gt;
*Zweierkomplement&lt;/div&gt;</summary>
		<author><name>Marius</name></author>	</entry>

	</feed>