Suchen und Sortieren (Die klassischen Algorithmen)
|
|
|
- Etta Krause
- vor 10 Jahren
- Abrufe
Transkript
1 Suchen und Sortieren (Die klassischen Algorithmen) Lineare Suche und Binäre Suche (Vorbedingung und Komplexität) Sortieralgorithmen (allgemein) Direkte Sortierverfahren (einfach aber langsam) Schnelle Sortierverfahren (Mergesort, Quicksort) Schnelles Sortieren in Bäumen (Heapsort)... noch schnelleres spezielles Verfahren Proxmap Prof. Dr. E. Ehses,
2 Wie soll die Schnittstelle einer Suchfunktion aussehen? Problem: finde Index eines vorgegebenen Objekts in einem Array a) int[] feld1 = {17,.. ; Wertdaten int x = FindLinear.find(feld1, 14); (Vergleiche mit ==) b) Integer[] feld2 = {Integer.valueOf(17),...; Referenzdaten* int x = FindLinear.find(feld2, Integer.valueOf(14)); (Vergleiche mit equals()-methode) Anmerkung: schnelle Suchverfahren erfordern auch -Vergleiche. *wg. Autoboxing kann man das auch so schreiben (identischer Effekt): Integer[] feld2 = {17, ; //Array mit Referenzdaten (Integer) int x = FindLinear.find(feld2, 14); Prof. Dr. E. Ehses,
3 Die Idee der linearen Suche Ziel: i n-1 x n-1 i Invariante: i n-1 hier ist x nicht hier kann x sein Prof. Dr. E. Ehses,
4 Lineare Suche ist ganz einfach. /** * Finde die Position einer ganzen Zahl in einem Feld. a Feld in dem gesucht wird key zu suchende Zahl wenn gefunden die Position, sonst -1; */ public static int find(int[] a, int key) { // Invariante: key ist nicht in a[0:i-1] // Abbruchbedingung: i=a.length oder a[i]=key int i = 0; while (i!= a.length && key!= a[i]) { // key nicht in a[0:i] i++; // Ziel: key ist nicht in a[0:i-1] // und (i = a.length oder a[i] = key) return i!= a.length? i : -1; Laufzeitverhalten der linearen Suche ist O(n) Prof. Dr. E. Ehses,
5 Lineare Suche bei einem Feld von Referenzen* /** * Finde die Position eines Objekts in einem Feld. a Feld in dem gesucht wird key zu suchendes Objekt wenn gefunden die Position, sonst -1; */ public static int find(object[] a, Object key) { // Invariante: key ist nicht in a[0:i-1] // Abbruchbedingung: i = a.length oder a[i] = key int i = 0; while (i!= a.length &&!key.equals(a[i])) { // key nicht in a[0:i] i++; // Ziel: key ist nicht in a[0:i-1] // und (i = a.length oder a[i] = key) return i!= a.length? i : -1; Prof. Dr. E. Ehses,
6 Umgang mit Null (eine Möglichkeit!) private static final NULL_OBJECT = new Object() { public boolean equals(object other) { return other == this other == null; public static int find(object[] a, Object key) { if (key == null) key = NULL_OBJECT; int i = 0; while (i!= a.length &&!key.equals(a[i])) { // key nicht in a[0:i] i++; // Ziel: key ist nicht in a[0:i-1] // und (i = a.length oder a[i] = key) return i!= a.length? i : -1; Prof. Dr. E. Ehses,
7 Bei Comparable-Objekten geht auch compareto() /** * Finde die Position eines Objekts in einem Feld. a Feld in dem gesucht wird key zu suchendes Objekt wenn gefunden die Position, sonst -1; */ public static int find(comparable[] a, Comparable key) { // Invariante: key ist nicht in a[0:i-1] // Abbruchbedingung: i = a.length oder a[i] = key int i = 0; while (i!= a.length && key.compareto(a[i])!= 0) { // key nicht in a[0:i] i++; // Ziel: key ist nicht in a[0:i-1] // und (i=na.length oder a[i]=key) return i!= a.length? i : -1; Hier bringt compareto() nur Nachteile! Bei besseren Suchverfahren brauchen wir aber aber Größenvergleiche (Sortieren sowieso). Prof. Dr. E. Ehses,
8 Die Schnittstelle Comparator kann eine flexible Alternative sein! /** * Finde die Position eines Objekts in einem Feld. a Feld in dem gesucht wird key zu suchendes Objekt comp Comparator-Objekt, das die Ordnung festlegt wenn gefunden die Position, sonst -1; */ public static int find(object[] a, Object key, Comparator comp) { // Invariante: key ist nicht in a[0:i-1] // Abbruchbedingung: i = a.length oder a[i] = key int i = 0; while (i!= a.length && comp.compare(key, a[i])!=0) { // key nicht in a[0:i] i++; // Ziel: key ist nicht in a[0:i-1] // und (i = a.length oder a[i] = key) return i!= a.length? i : -1; Durch ein Comparator-Objekt kann von Fall zu Fall festgelegt werden, was Gleichheit oder was Größenvergleich bedeutet. Prof. Dr. E. Ehses,
9 Die binäre Suche ist schneller, aber setzt sortiertes Feld voraus Vorbedingung: das Feld ist sortiert Ziel: i n-1 x i n-1 Rückgabe: -i-1 Invariante: i m j hier ist x nicht hier kann x sein Prof. Dr. E. Ehses,
10 Binäre Suche verlangt sortiertes Feld... und ist relativ schnell. /** finde Position von Object x in Feld a a sortiertes Feld von Objekten key zu suchendes Objekt (bzw. key des Objekts) cmp Comparator für die Suche des Objekts wenn gefunden: Index des Objekts, sonst -(index+1) vor * dem key stehen sollte. */ public static int find(object[] a, Object key, Comparator cmp) { /* Vorbedingung: n >= 0 und a ist aufsteigend sortiert * Ziel: (key ist nicht in a[0:n-1] und i>j) oder a[m]=x * Invariante: key ist höchstens in a[i:j] */ int i = 0; // untere Intervallgrenze int j = a.length-1; // obere Intervallgrenze while (i = j) { int m = (i+j)/2; // Intervallmitte int compareresult = cmp.compare(key, a[m]); if (compareresult == 0) return m: else if(ccompareresult 0) j = m-1; else i = m+1; return -i-1; Laufzeitverhalten der binären Suche ist O(log n) Prof. Dr. E. Ehses,
11 by the way... Rekursion ist noch einfacher /** finde Position von Object x in Feld a a sortiertes Feld von Objekten key zu suchendes Objekt (bzw. key des Objekts) cmp Comparator für die Suche des Objekts i untere Grenze des Suchintervalls j obere Grenze des Suchintervalls wenn gefunden: index des Objekts, sonst -(index+1) vor * dem key stehen sollte. */ public static int find(object[] a, Object key, Comparator cmp int i, int j) { if (i > j) return -i-1; int m = (i + j) / 2; // Intervallmitte int compareresult = cmp.compare(key, a[m]); if (compareresult == 0) return m; else if (compareresult 0) return find(a, key, cmp, i, m - 1); else return find(a, key, cmp, m + 1, j); Laufzeitverhalten der binären Suche ist O(log n) Prof. Dr. E. Ehses,
12 Sortieralgorithmen Definition: Eine sortierte Reihenfolge ist eine Permutation der Elemente einer sequentiellen Datenstruktur, die einer bestimmten Ordnungsbeziehung genügt. Sortieren von Feldern. (internes Sortieren) Sortieren von Listen. (wird manchmal auf Felder zurückgeführt => intern) Sortieren von Dateien. (externes Sortieren) Die Tatsache, dass ein Sortierverfahren eine Permutation darstellt, erlaubt es, grundsätzlich ohne Hilfsfelder auszukommen. Meist wird internes Sortieren auf Vertauschen zweier Elemente zurückgeführt. Komplexität: mindestens (!) O(n) Prof. Dr. E. Ehses,
13 Direkte Verfahren sind leicht zu verstehen -- aber zu langsam für richtige Anwendungen Ziel: n-1 Invarianten: i Alle diese Verfahren sind O(n 2 ) fertig sortiert: direkte Auswahl selection sort geordnet: i direktes Einfügen insertion sort fertig sortiert: direktes Vertauschen (Bubblesort) bubble sort Prof. Dr. E. Ehses,
14 Die Invariante bestimmt den Algorithmus! Direkte Auswahl Direktes Einfügen Prof. Dr. E. Ehses,
15 Direkte Auswahl import java.util.comparator; public class Selectionsort { public static void sort(object[] a, Comparator comp) { int n = a.length; for (int i = 0 ; i n - 1; i++) { // fertig-geordnet(a[0:i-1]) int j = i; for (int k=i+1; k n; k++ ) { if (comp.compare(a[k], a[j]) 0 ) j = k; // i=jn und a[j] = Mininum(a[i:n-1]) if (i!= j) { Object t = a[i]; a[i] = a[j]; a[j] = t; // fertig-geordnet(a[0:i]) // Q: fertig-geordnet(a[0:n-1]) Vergleiche: O(n 2 ) + Vertauschungen: O(n) = O(n 2 ) Prof. Dr. E. Ehses,
16 Direkte Auswahl import java.util.comparator; public class Selectionsort { public static void sort(object[] a, Comparator comp) { for (int i = 0 ; i a.length - 1; i++) { // fertig-geordnet(a[0:i-1]) swap(a, i, minpos(a, i, comp)); // fertig-geordnet(a[0:i]) // Q: fertig-geordnet(a[0:a.length-1]) private int minpos(object[] a, int from, Comparator c) { int m = from; for (int i = from + 1; i a.length; i++) { if (a.compare(a[i], a[m]) 0) m = i; return m;... Prof. Dr. E. Ehses,
17 Idee: rekursive Zerlegung und getrenntes Sortieren Man kann ein Feld mit n Elementen ld(n) mal halbieren. (1 x 8 2 * 4 4 *2 8*1) Am Ende braucht man nichts mehr zu tun. Wenn man bei jeder Zerlegung (vorher oder nachher) einen Aufwand von O(n) treibt (damit nachher alles sortiert ist) ist der Algorithmus O(n ld(n)). Es gibt 2 Varianten: Quicksort: erst Datenelemente richtig auf 2 Hälften verteilen und dann getrennt sortieren. (alle Daten des linken Teils sind kleiner als die des rechten Teils) Mergesort: erst die beiden Teile getrennt sortieren und dann die Ergebnisse mischen. Prof. Dr. E. Ehses,
18 Quicksort ist ein rekursiver Algorithmus public static void sort(object[] a, Comparator comp) { sort(a, 0, a.length-1, comp); public static void sort(object a[], int i0, int i1, Comparator comp) { // i0, i1 = Intervallanfang, -ende if (i0 i1) { int mitte = partition(a, i0, i1, comp); // O(n) // a[i0:i-1] = a[mitte] a[mitte+1:i1] sort(a, i0, mitte-1, comp); // fertig_sortiert(a[i0:mitte]) sort(a, mitte+1, i1, comp); // fertig_sortiert(a[i0:i1]) Wenn partition() O(n) ist und in der Mitte teilt, ist das Sortieren O(n log n)! Prof. Dr. E. Ehses,
19 Neue Idee: Zerlegung eines Array und getrenntes Sortieren Ziel: n-1 Ideal jeweils Halbierung und O(n) pro Ebene: log n Ebenen, also n log n Zerlegungsidee = i Rekursion Rekursion pivot i j Prof. Dr. E. Ehses,
20 Algorithmus zum Zerlegen: 1. Wähle geeignetes Pivotelement 2. Tausche Pivotelement an den Anfang 3. Wandere mit i0 und i1 nach Innen und tausche bei Bedarf 4. Tausche Pivotelement in die Mitte 5. Danach ist das Pivotelement an der richtigen Stelle und links und rechts kann unbhängig sortiert werden. i0 i i1 i Prof. Dr. E. Ehses,
21 Der Kernalgorithmus ist die Zerlegung private static int partition(object[] a, int i0, int i1, Comparator comp) { swap(a, i0, i0 + (int)(math.random()*(i1-i0))); Object pivot = a[i0++]; // Inv. (I0, I1 = Anfangswerte): a[i0:i0-1] = pivot a[i1+1:i1] while (i0 = i1) { if (comp.compare(a[i0], pivot) = 0) // links ok i0++; else if (comp.compare(pivot, a[i1]) 0) // rechts ok i1--; else { // tausche links-rechts // a[i0] > pivot >= a[i1] swap(a, i0, i1); // a[i0] = pivot a[i1] i0++; i1--; // Jetzt sind i0 und i1 um 1 zu weit gelaufen. // a[i0+1:m] = pivot a[m+1:i1] // bringe pivot an die richtige Stelle swap(a, pivot, i1); return i1; Die Zerlegung ist garantiert O(n), aber Halbierung ist nicht garantiert! Übliche Optimierung: while anstelle von if und else if Prof. Dr. E. Ehses,
22 Bewertung des Quicksort Quicksort ist mit das älteste bekannte schnelle Sortierverfahren (Anthony Hoare) Im Durchschnitt erreicht Quicksort O(n log n) Im schlechtesten Fall ist Quicksort O(n 2 ) Wenn man zur Zerlegung stets das erste Feldelement wählt, tritt der schlechteste Fall bei einem bereits sortierten Feld auf. Es gibt Algorithmen, die den schlechtesten Fall unwahrscheinlicher machen (Pseudomedian) Wenn man ein zufälliges Feldelement wählt, ist bei großen Feldern der schlechteste Fall statistisch ausgeschlossen (randomisierte Algorithmen) Prof. Dr. E. Ehses,
23 Mergesort ist das Gegenstück zu Quicksort! Zerlegung Aufwand: log n Ebenen, also n log n Einziges Problem: Mischen erfordert ein Hilfsfeld! Rekursion Rekursion sortiert sortiert Mischen sortiert Prof. Dr. E. Ehses,
24 Mergesort ist das Gegenstück zu Quicksort public static void sort(object[] a, Comparator comp) { sort(a, 0, a.length-1, comp); //Q: ist_sortiert(a[i0:i1]) public static void sort(object a[], int i0, int i1, Comparator comp) { // i0, i1 = Intervallanfang, -ende if (i0 i1) { int mitte = (i0 + i1) / 2; sort(a, i0, mitte, comp); sort(a, mitte+1, i1, comp); // ist_sortiert(a[i0:mitte]) und ist_sortiert(a[mitte+1]:i1]) Object[] hilf = Kopie von a; merge(hilf, a, io, i1, mitte, comp); // O(n) Verbesserung: unmittelbar zu Beginn ein Hilfsfeld als Kopie von a anlegen! Da das Hilfsfeld stets eine Kopie von a ist, kann man weiteres Kopieren vermeiden, indem bei jedem Aufruf a und hilf ihre Rolle tauschen. (siehe Praktikum). Prof. Dr. E. Ehses,
25 Mergesort mit einem Hilfsfeld (leicht verständlich mit Vor- und Nachbedingung) public static void sort(object[] a, Comparator comp) { Object[] b = Arrays.copyOf(a, 0, a.length); sort(b, a, 0, a.length-1, comp); //P: s[i0:i1] == d[i0:i1] //Q: ist_sortiert(d[i0:i1]) public static void sort(object[] s, Object[] d, int i0, int i1, Comparator comp) { // i0, i1 = Intervallanfang, -ende if (i0 i1) { int mitte = (i0 + i1) / 2; sort(d, s, i0, mitte, comp); sort(d, s, mitte+1, i1, comp); // ist_sortiert(s[i0:mitte]) und ist_sortiert(s[mitte+1]:i1]) merge(s, d, io, i1, mitte, comp); ] Prof. Dr. E. Ehses,
26 Das eigentliche Mischen Das ist ein einfacher Kopieralgorithmus, der im direkten Vergleich entscheidet, aus welcher Feldhälfte das nächste Element genommen wird. //P: ist_sortiert(s[i0:mitte]) und ist_sortiert(s[mitte+1]:i1]) //Q: ist_sortiert(d[i0:i1]) private static void merge(object[] s, Object[] d, int i0, int i1, int mitte, Comparator comp) { int l = i0; // linker Bereich int r = mitte + 1; // rechter Bereich // I: ist_sortiert(d[i0:i-1]) & zu_mischen(l:mitte] & zu_mischen(s[r:i1]) for (int i = i0; i = i1; i++) { boolean rechtsfertig = r > i1; boolean linkswasda = l = mitte; if (rechtsfertig linkswasda && comp.compare(s[l], s[r]) = 0) d[i] = s[l++] else d[i] = s[r++]; Prof. Dr. E. Ehses,
27 Vergleich Mergesort und Quicksort Mergesort ist garantiert O(n log n), Quicksort im Mittel Die Anzahl der Vergleich und der Datenbewegungen ist bei Mergesort n log 2 (n). Quicksort hat im Mittel 1.4 n log 2 n Vergleiche. Quicksort hat im Mittel 0.7 n log 2 n Datenbewegungen. Quicksort ist schneller, wenn die Vergleiche schneller sind als die Datenbewegungen (einfache Datentypen) Mergesort ist schneller, wenn die Vergleiche die Zeit dominieren (Objekte) Es gibt Varianten von Mergesort für Felder und Listen (nicht rekursiv) Mergesort ist stabil (Beibehalten der Reihenfolge gleichrangiger Elemente). Prof. Dr. E. Ehses,
28 Rekursives Sortieren in einem Baum: Heapsort k(i) = 2 * r + i Heapbedingung: jeder Knoten enthält einen größeren Wert als seine Kinder Feld zu Heap machen Heap von der Spitze her abbauen Aufwand: O(n log n) Prof. Dr. E. Ehses,
29 Berechnungformel Eltern - Kind Besonders einfach, wenn Array-Indizes 1 2,3 4,5.. zählen: Kind-Index = 2 * Eltern-Index Eltern-Index = Kind-Index / 2 (+ 1 für 2. Kind) Eltern Kinder 1 2, 3 2 4, 5 3 6, 7 4 8, 9 Bei Indizierung 0 1,2 3,4,5.. Kind-Index = 2 * Eltern-Index + 1 Eltern-Index = (Kind-Index 1) / 2 Eltern Kinder 0 1, 2 1 3, 4 2 5, 6 3 7, 8 Prof. Dr. E. Ehses,
30 Effizientes Einfügen und Entfernen aus einem Heap ( O(log n) ) /** Der unterste Knoten schwimmt nach oben, bis er seinen Platz * gefunden hat. child Index des Kindknotens. */ private static void swim(object[]a, int child, Comparator c) { int parent = (child-1) / 2; while (child > 0 && c.compare(a[parent], a[child]) 0) { swap(a, parent, child); child = parent; parent = (child-1) / 2; /** Der oberste Knoten sinkt nach unten, * bis er seinen Platz gefunden hat. n Größe des Heap. */ private static void sink(object[] a, int n, Comparator c) { int parent = 0, child = 1; while (child n) { int sibling = child + 1; if (sibling n && c.compare(a[sibling], a[child]) > 0) child = sibling; if (c.compare(a[parent], a[child]) >= 0) return; swap(a, parent, child); parent = child; child = 2 * parent + 1; besser: Ringtausch (Feldwerte schieben und dann neuen Wert einsetzen) Prof. Dr. E. Ehses,
31 Heapsort besteht aus zwei Teilen: dem Aufbauen und dem Abbauen des Heaps public static void sort(object[] a, Comparator c) { // wir fügen ab dem 2. Feldelement alle Elemente nacheinander // dem Heap zu und lassen sie nach oben schwimmen. for (int i= 1; i a.length; i++) swim(a, i, c); // wir tauschen das jeweils größte Element an den richtigen Platz // und lassen das neue a[0] nach unten sinken for (int i = a.length - 1; i > 0; i--) { swap(a, 0, i); sink(a, i, c); Die garantierte Laufzeit O(n log n) ist ähnlich gut wie Quicksort/Mergsort Die Beachtung der Heapeigenschaften ist eine ideale Basis für das fortgesetzte Einfügen und Auswählen des Besten (priority queue) (vgl. Praktikumsaufgabe: ) dabei wird die Heapeigenschaft umgekehrt: Elternelement Kinder) Einfügen in queue: am Ende + swim Entfernen aus queue: am Anfang + Tauschen mit Ende + sink Prof. Dr. E. Ehses,
32 Proxmap Sort (Idee, bessere Implementierung direkt im Feld) 1. Man bestimmt Minimum und Maximum der Datenmenge. O(n) 2. Man ermittelt daraus eine Funktion mapkey() mit richtiger Reihenfolge!. 3. Mittels mapkey() berechnet man für jedes Datenelement eine Sollposition und sortiert die Daten in ein Bucket an Sollposition. O(??) 4, Man überträgt die Daten der Reihe nach in das Feld. O(n) Kritisch ist vor sind Punkt 2 und 3: bei zufälligen/gleichverteilten Daten ist der Aufwand insgesamt O(n) (pro Bucket O(1)) bei ungünstigen Daten (1 Bucket) ist der Aufwand O(n 2 ). schwierig allgemein zu lösen. Prof. Dr. E. Ehses,
33 Vergleich der Ausführungszeiten von Sortierverfahren Quicksort 0,40 0,98 2,22 4,94 10,86 Heapsort* 0,61 1,43 3,28 7,43 16,57 Proxmap 0,38 0,75 1,51 3,00 5,99 Bubblesort 2,76 11,36 46,42 189,35 766,22 Insertionsort 1,12 4,47 17,58 69,89 280,27 Selectionsort 1,40 5,56 22,18 88,66 354,48 Direktes Sortieren: O(n 2 ) Heapsort, Mergesort O(n log n) Quicksort: O avg (n log n) O worst case (n 2 ) der worst case ist statistisch fast unmöglich Proxmap O avg (n) O worst case (n 2 ) der worst case hängt immer von Daten ab *Die Messwerte sind zu schlecht. Man kann Heapsort optimieren! Prof. Dr. E. Ehses,
Programmieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
Überblick. Lineares Suchen
Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität
Abschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter
Sortierverfahren. Sortierverfahren für eindimensionale Arrays
Sortierverfahren Sortierverfahren Sortieren durch Einfügen Sortieren durch Auswählen Sortieren durch Vertauschen (Bubblesort) Quicksort Sortierverfahren für eindimensionale Arrays 1 Gegeben ist eine beliebige
Suchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die
3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1
3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)
Algorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12
Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben
- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:
6 Partiell geordnete binäre Bäume: Heap (Haufen) Motivation für manchen Anwendungen nur partielle Ordnung der Elemente statt vollständiger nötig, z.b. - Prioritätsschlange: nur das minimale (oder maximale)
Name:... Vorname:... Matrikel-Nr.:... Unterschrift:...
Studiengang Bachelor of Computer Science Modulprüfung Praktische Informatik 1 Wintersemester 2010 / 2011 Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Hinweise: 1.) Schreiben Sie Ihren Namen und
1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)
Vorname:... Matrikel-Nr.:... Unterschrift:...
Fachhochschule Mannheim Hochschule für Technik und Gestaltung Fachbereich Informatik Studiengang Bachelor of Computer Science Algorithmen und Datenstrukturen Wintersemester 2003 / 2004 Name:... Vorname:...
Software Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative
Lösungsvorschläge. zu den Aufgaben im Kapitel 4
Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere
Sortierverfahren für Felder (Listen)
Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es
Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1
Sortieren durch Einfügen Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Schon wieder aufräumen Schon wieder Aufräumen, dabei habe ich doch erst neulich man findet alles schneller wieder Bücher auf Regal
Kostenmaße. F3 03/04 p.188/395
Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);
Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.
Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume [email protected] 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
Programmierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
EndTermTest PROGALGO WS1516 A
EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von
Java Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:
AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls
Programmiertechnik II
Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...
Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler
Kapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse
Übung 05: Arrays Abgabetermin: xx.xx.xxxx Name: Name, Vorname Matrikelnummer: 0XXXXXX Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch
Primzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
Einführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...
Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.
Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block
Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in
Studentische Lösung zum Übungsblatt Nr. 7
Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int
Grundlagen der Theoretischen Informatik, SoSe 2008
1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)
Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1
Zahlenwinkel: Forscherkarte 1 alleine Tipp 1 Lege die Ziffern von 1 bis 9 so in den Zahlenwinkel, dass jeder Arm des Zahlenwinkels zusammengezählt das gleiche Ergebnis ergibt! Finde möglichst viele verschiedene
188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])
3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere
Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
Objektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert
Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume
Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
Professionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
2015-06-11 Tagesprogramm
1 2015-06-11 Tagesprogramm Design-by-Contract 2 Vertragspartner Anbieter (Server) bietet Leistungen (Services) an Kunde (Client) nimmt von Anbietern angebotene Leistungen in Anspruch Details der Inanspruchnahme
Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
Datenaufbereitung in SPSS. Daten zusammenfügen
Daten zusammenfügen I. Fälle hinzufügen Diese Schritte müssen Sie unternehmen, wenn die Daten in unterschiedlichen Dateien sind; wenn also die Daten von unterschiedlichen Personen in unterschiedlichen
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens [email protected] Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes
Zählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)
Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...
MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH
MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: [email protected] Stand: MORE Projects GmbH Einführung Die in More Profile integrierte
Objektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode
Algorithmen und Datenstrukturen Suchbaum
Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen
Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.
Das ist ein Text in leichter Sprache. Hier finden Sie die wichtigsten Regeln für den Verein zur Förderung der Autonomie Behinderter e. V.. Das hier ist die Übersetzung der Originalsatzung. Es wurden nur
Fragen für die Klausuren
Fragen für die Klausuren Vom Quellcode zum ausführbaren Programm Was ist ein Quellcode? Ist der Quellcode von einem Programm auf unterschiedlichen Rechner gleich? Nennen Sie drei Programmiersprachen. Was
SEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
Leichte-Sprache-Bilder
Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen
Grundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
Programmieren in C. Rekursive Funktionen. Prof. Dr. Nikolaus Wulff
Programmieren in C Rekursive Funktionen Prof. Dr. Nikolaus Wulff Rekursive Funktionen Jede C Funktion besitzt ihren eigenen lokalen Satz an Variablen. Dies bietet ganze neue Möglichkeiten Funktionen zu
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
Große Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 [email protected] http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung
Outlook Weiterleitungen & Abwesenheitsmeldungen Seite 1 von 6 Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Erstellt: Quelle: 3.12.09/MM \\rsiag-s3aad\install\vnc\email Weiterleitung
Java: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
Wie halte ich Ordnung auf meiner Festplatte?
Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,
Client-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
Informationsblatt Induktionsbeweis
Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln
Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.
6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente
Dokumentation für das Spiel Pong
Dokumentation für das Spiel Pong BwInf - Turnierserver Didaktik der nformatik BWINF KI Wettbewerbs-Plattform Stand: 02.09.2014 Grundlagen In diesem KI-Turnier programmiert ihr einen Schläger für das Retro-Spiel
Archivierung von Mails des Exchange-Systems
05.08.2004 Universitätsrechenzentrum Sven Vollmann Telefon: 987-2342 E-Mail: [email protected] Archivierung von Mails des Exchange-Systems Die Mailordner auf dem Exchange-System wachsen ständig,
15 Optimales Kodieren
15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen
Grundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
Vorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
Institut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 26. April 2013 Programmieren II 10. Übungsblatt Hinweis: Insgesamt werden in diesem Semester fünf
Informatik Grundlagen, WS04, Seminar 13
Informatik Grundlagen, WS04, Seminar 13 Informatik Informatik Grundlagen, Seminar 13 WS04 1 Was wir heute besprechen Nachbesprechen von Übungsblatt 11 Rekursion Grundprinzipien Übung Besprechung Übungsblatt
Anmerkungen zur Übergangsprüfung
DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung
Suchen und Sortieren
(Folie 69, Seite 36 im Skript) 5 6 1 4 Als assoziatives Array geeignet Schlüssel aus geordneter Menge Linke Kinder kleiner, rechte Kinder größer als Elternknoten Externe und interne Knoten Externe Knoten
Primarschule Birmensdorf PIA Anleitungen Word. Bevor du mit Schreiben beginnen kannst, musst du dein Word- Dokument einrichten.
Word einrichten Bevor du mit Schreiben beginnen kannst, musst du dein Word- Dokument einrichten. Starte ein Word Dokument, indem du auf das blaue W drückst. Wähle Ansicht 1, gehe zu Symbolleiste 2 und
Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als
Vorkurs Informatik WiSe 15/16
Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner
Animationen erstellen
Animationen erstellen Unter Animation wird hier das Erscheinen oder Bewegen von Objekten Texten und Bildern verstanden Dazu wird zunächst eine neue Folie erstellt : Einfügen/ Neue Folie... Das Layout Aufzählung
Algorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Organisatorisches: Keine Vorlesung nächste Woche wegen
Serien-eMail mit oder ohne Anhang
Serien-eMail mit oder ohne Anhang Sie können im WohnungsManager sowohl objektübergreifend als auch in einem Objekt Serien-eMails versenden. Die Serien-eMail ist für SMTP (Short Message Tranfer Protocol)
Über Arrays und verkettete Listen Listen in Delphi
Über Arrays und verkettete Listen Listen in Delphi Michael Puff [email protected] 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete
Lernmaterial für die Fernuni Hagen effizient und prüfungsnah
Lernmaterial für die Fernuni Hagen effizient und prüfungsnah www.schema-f-hagen.de Sie erhalten hier einen Einblick in die Dokumente Aufgaben und Lösungen sowie Erläuterungen Beim Kauf erhalten Sie zudem
Wasserzeichen mit Paint-Shop-Pro 9 (geht auch mit den anderen Versionen. Allerdings könnten die Bezeichnungen und Ansichten etwas anders sein)
Wasserzeichen mit Paint-Shop-Pro 9 (geht auch mit den anderen Versionen. Allerdings könnten die Bezeichnungen und Ansichten etwas anders sein) Öffne ein neues Bild ca. 200 x 200, weiß (Datei - neu) Aktiviere
Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou
Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Equivalenz?
Zimmertypen. Zimmertypen anlegen
Zimmertypen anlegen Hier legen Sie Ihre Zimmer an, damit sie auf der Homepage dargestellt werden und online buchbar gemacht werden können. Wobei wir ausdrücklich darauf hinweisen möchten, dass es ganz
Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)
Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR) Eine Firma stellt USB-Sticks her. Sie werden in der Fabrik ungeprüft in Packungen zu je 20 Stück verpackt und an Händler ausgeliefert. 1 Ein Händler
Geld Verdienen im Internet leicht gemacht
Geld Verdienen im Internet leicht gemacht Hallo, Sie haben sich dieses E-book wahrscheinlich herunter geladen, weil Sie gerne lernen würden wie sie im Internet Geld verdienen können, oder? Denn genau das
Anleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die
Test-Driven Design: Ein einfaches Beispiel
Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms
