Algorithmen und Datenstrukturen



Ähnliche Dokumente
1 topologisches Sortieren

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

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!.

Überblick. Lineares Suchen

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Einführung in die Programmierung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Vorkurs Informatik WiSe 15/16

Nachtrag zu binären Suchbäumen

Aufgaben zur Flächenberechnung mit der Integralrechung

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Plotten von Linien ( nach Jack Bresenham, 1962 )

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

Algorithmen und Datenstrukturen Suchbaum

Kapiteltests zum Leitprogramm Binäre Suchbäume

2. Negative Dualzahlen darstellen

Professionelle Seminare im Bereich MS-Office

Erwin Grüner

Teil 1: IT- und Medientechnik

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

7 Rechnen mit Polynomen

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Datensicherung. Beschreibung der Datensicherung

Kurzanleitung MAN E-Learning (WBT)

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Statistische Thermodynamik I Lösungen zur Serie 1

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

R ist freie Software und kann von der Website.

BUCHHALTUNG BUCHFÜHRUNG WO IST ER EIGENTLICH? - DER UNTERSCHIED?

Kapitel 3: Etwas Informationstheorie

Datenstrukturen und Algorithmen

Vorgehensweise bei Lastschriftverfahren

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

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.

Tutorial: Homogenitätstest

Electronic Systems GmbH & Co. KG

Programmierkurs Java

1.1 Allgemeines. innerhalb der Nachtzeit (19:00 24:00) Gesamte Normalarbeitszeit (16:00 19:00)

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Kugel-Fächer-Modell. 1fach. 3fach. Für die Einzelkugel gibt es 3 Möglichkeiten. 6fach. 3! Möglichkeiten

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Spielanleitung. Art.-Nr.: Spieleautoren: Arno Steinwender und Christoph Puhl

Internet Explorer Version 6

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Einrichtung eines Zugangs mit einer HBCI-Chipkarte bei der Commerzbank

Statuten in leichter Sprache

Beheben von verlorenen Verknüpfungen

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Einführung in. Logische Schaltungen

Konzepte der Informatik

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Was ist Sozial-Raum-Orientierung?

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

SAMMEL DEINE IDENTITÄTEN::: NINA FRANK :: :: WINTERSEMESTER 08 09

1 Vom Problem zum Programm

How to do? Projekte - Zeiterfassung

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Zufallsgrößen und Wahrscheinlichkeitsverteilungen

Anlegen eines DLRG Accounts

Anzeige von eingescannten Rechnungen

TECHNISCHE UNIVERSITÄT MÜNCHEN

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Tipps & Tricks im CRM

Das Leitbild vom Verein WIR

Geld Verdienen im Internet leicht gemacht

Fit in Mathe. Juni 2014 Klassenstufe 9. Lineare Funktionen

Grundbegriffe der Informatik

Updatehinweise für die Version forma 5.5.5

Kapitalerhöhung - Verbuchung

Voraussetzung. Anleitung. Gehen Sie auf Start Einstellungen und suchen Sie hier den Eintrag Datenverbindungen oder Verbindungen. Öffnen Sie diesen.

Primzahlen und RSA-Verschlüsselung

Grundlagen der Informatik

Anwendungsbeispiele Buchhaltung

Thema: Winkel in der Geometrie:

AutoCAD Dienstprogramm zur Lizenzübertragung

Inkrementelles Backup

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Electronic Systems GmbH & Co. KG

Einfügen von Bildern innerhalb eines Beitrages

Programm 4: Arbeiten mit thematischen Karten

Tagesprogramm

Eine Logikschaltung zur Addition zweier Zahlen

Leichte-Sprache-Bilder

Wir arbeiten mit Zufallszahlen

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Informationsblatt Induktionsbeweis

Software Engineering Klassendiagramme Assoziationen

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Nicht über uns ohne uns

Studienplatzbeschaffung

Evident VDDS-Anbindung von MIZ

Sollsaldo und Habensaldo

Software Engineering Interaktionsdiagramme

Teiltransparente Bilder

Transkript:

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) 2 1

Überblick Grundlagen Suchalgorithmen Sortieralgorithmen Analyse von Algorithmen 3 Binäre Suche nur geeignet für sortierte Datenbestände Schlüsselwerte müssen eindeutig sein (dürfen also nicht mehrfach im Datenbestand vorkommen) Teile-und-herrsche-Prinzip Verfahren: Vergleiche das mittlere Element des Datenbestands mit dem Suchschlüssel. Wenn Übereinstimmung dann fertig. Wenn Suchschlüssel größer, dann Suche in rechter Hälfte fortsetzen. ( mittleres Element der rechten Hälfte) Wenn Suchschlüssel kleiner, dann Suche in linker Hälfte fortsetzen. ( mittleres Element der linken Hälfte) 4 2

Binäre Suche Beispiel: 3 5 9 17 22 30 32 36 42 43 49 53 55 61 66 Suchschlüssel: 30 [3..66] Vergleiche mit 36: [3..32] Vergleiche mit 17: [22..32] Vergleiche mit 30: 30<36 linke Hälfte 30>17 rechte Hälfte 30=30 gefunden! 5 Binäre Suche int search( int l, int r, int akey ) { int result = -1; int m; if (l <= r) { m = (l+r)/2; if (data[m].key == akey) { result = m; else { if (data[m].key < akey) { result = search( m+1, r, akey ); else { result = search( l, m-1, akey ); // if return result; 6 3

Binäre Suche Vorteile: zeitsparender gegenüber der seq. Suche weniger Vergleiche nötig geeignet für große Datenbestände Nachteile: erfordert sortierten Datenbestand eignet sich nicht, wenn Datenbestand in verketteter Liste vorliegt, da Bestimmung des Mittelelments zu aufwendig ist 7 Binäre Suche Bei einem Datenbestand von 1 000 000 Datensätzen werden maximal 20 rekursive Aufrufe benötigt, bis feststeht ob und wenn ja an welcher Stelle ein bestimmtes Element steht. 8 4

Binäre Suche 2. Variante int BinSearch( int akey ) { int l, r, m; l = 0; r = N-1; while (l < r) { m = (l + r) / 2; if (data[m].key < akey) { l = m + 1; else { r = m; if (data[r].key == akey) { return(r); else { return(-1); 9 Binäre Suche 2. Variante Welche Unterschiede gibt es zwischen den beiden hier vorgestellten Varianten der binären Suche? 10 5

Interpolationssuche Stellt Verbesserung der binären Suche dar. Versucht zu erraten, wo sich der gesuchte Schlüssel im betrachteten Intervall befinden könnte, anstatt immer nur mit dem mittleren Element zu vergleichen. Vergleichbar mit der Suche in einem dicken Telefonbuch: Beginnt der Name mit B, sucht man weiter vorne, beginnt er mit W, sucht man weiter hinten. 11 Interpolationssuche Bei der binären Suche wurde die Mitte bestimmt, um dort den nächsten Vergleich durchzuführen: m = (l + r) / 2 = l + ½ (r - l) Bei der Interpolationssuche ersetzt man nun den Faktor ½ durch eine geeignete Schätzung für die wahrscheinliche (oder erwartete) Position des Suchschlüssels. 12 6

Interpolationssuche akey - data[l].key m = l + (r - l) data[r].key - data[l].key Voraussetzung: die Schlüsselwerte im Intervall data[l].key,..., data[r].key sind Zahlenwerte und einigermaßen gleichverteilt m wird bei der Berechnung korrekt gerundet 13 Interpolationssuche Beispiel 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (absolute Gleichverteilung: jeder Wert ist genau einmal vorhanden) Suchschlüssel akey=5 1. Durchgang: l=0, r=14 Die Berechnung ergibt: m=4 D.h. bereits der erste Vergleich trifft ins Schwarze! 14 7

Interpolationssuche Beispiel 2 1 4 5 6 7 8 10 11 13 14 16 18 20 21 22 (weitgehende Gleichverteilung: zwischen dem kleinsten und dem größten Wert gibt es nur wenige Lücken) Suchschlüssel akey=6 1. Durchgang: l=0, r=14 Die Berechnung ergibt: m=3 D.h. auch hier trifft der erste Vergleich! 15 Interpolationssuche Beispiel 3 1 4 5 6 7 8 10 11 13 14 16 18 20 21 22 Suchschlüssel akey=18 1. Durchgang: l=0, r=14 Die Berechnung ergibt: m=11 D.h. auch hier trifft der erste Vergleich! 16 8

Interpolationssuche Vorteile: I.d.R. weniger Vergleiche nötig als bei binärer Suche Nachteile: setzt gleichmäßig verteilte Schlüsselwerte voraus (ist in der Praxis nicht unbedingt gegeben) Berechnung von m ist komplexer 17 Interpolationssuche Der Quellcode der Interpolationssuche entspricht dem der Binären Suchen mit der einzigen Änderung, dass die Berechnung vom m entsprechend geändert wird. 18 9