BUBBLE SORT. Können wir die gefundenen Algorithmen auch auf Listen mit mehr als drei Elementen ausdehnen?
|
|
- Annegret Voss
- vor 7 Jahren
- Abrufe
Transkript
1 BUBBLE SORT Voraussetzungen der Schüler: Die Schüler besuchen bereits das zweite Jahr den Informatikunterricht und sollten den Umgang mit Feldern und Unterprogrammen mittlerweile beherrschen. Im ersten Jahrgang wurden bereits Aufgabenstellungen wie Minimum zweier Zahlen bestimmen oder drei Zahlen aufsteigend sortieren im Zusammenhang mit dem (geschachtelten) IF-THEN-ELSE behandelt. Einstieg: Einstiegsaufgabe: sortiere zuerst händisch drei vorgegebene Zahlen (z.b. 8, 4, 6 oder 7, 5, 3) in aufsteigender Reihenfolge und beschreibe, wie Du dabei vorgegangen bist. Die Schüler kommen hier meist auf einen dem Selection Sort ähnlichen Algorithmus. Manche erinnern sich auch noch an die Aufgabe aus dem Vorjahr und vergleichen aufeinanderfolgende Zahlen und vertauschen sie dann falls nötig. Zusatzfrage: Können wir die gefundenen Algorithmen auch auf Listen mit mehr als drei Elementen ausdehnen? Meine diesjährige Gruppe hat zuerst den Selection Sort für n zu sortierende Zahlen realisiert. Danach wurde die Struktur des Bubble Sorts anhand des folgenden Beispiels, welches händisch durchgespielt worden ist, nochmals veranschaulicht. Aufgabenstellung: Gegeben sei eine Liste von n Zahlen (bzw. Buchstaben), die aufsteigend (bzw. absteigend) mit Hilfe von Bubble Sort sortiert werden sollen. (Datenstruktur: ein Array der Länge n) Vorgangsweise des Bubble Sort Algorithmus für aufsteigende Sortierung: Das Array wird mehrmals durchlaufen, wobei ein fortgesetztes Vergleichen und Austauschen von Paaren nebeneinander liegender Elemente erfolgt. Man beginnt mit dem Vergleichen z.b. beim ersten Element des Arrays und schaut, ob dieses kleiner als das nächste Element ist. Ist dies nicht der Fall, werden die beiden Elemente vertauscht. Danach geht man zum zweiten Element weiter und vergleicht dieses mit dem dritten usw. Nach dem ersten Durchlauf steht das größte Element an der letzten Stelle. Nun muß noch das Feld im Index-Bereich [1..n-1] auf gleiche Weise sortiert werden. Bei jedem Durchlauf wandert das größte Element des betrachteten Array-Bereichs zum rechten Rand. (Bemerkung: Man könnte mit dem Vergleichen auch beim letzten Element beginnen. Falls das vorhergehende Element kleiner ist, ist kein Tausch notwendig, andernfalls schon. Auf diese Weise wandert das kleinste Element des betrachteten Bereiches an das linke Ende kleinstes Element an erster Stelle!) Evelin Kofler Bubble Sort Seite 1
2 Beispiel: Sortiere folgende Liste in aufsteigender Reihenfolge: 32, 51, 27, 85, 66, 23, 13, 57 Schritt 1: Ergebnis 1: Schritt 2: Ergebnis 2: Schritt 3: Ergebnis 3: Schritt 4: Ergebnis 4: Schritt 5: Ergebnis 5: Schritt 6: Ergebnis 6: Schritt 7: Ergebnis 7: Schritt 8: kein Durchlauf mehr notwendig, da der verbleibende Array-Bereich nur mehr aus einem Element besteht und eine einelementige Liste ist sortiert! Die hier verwendete Beispielliste hat 8 Elemente. Die Liste ist nach 7 Schritten vollständig sortiert. Evelin Kofler Bubble Sort Seite 2
3 Bubble Sort benötigt bei n zu sortierenden Elementen n-1 Durchläufe und n 2 (n-1) + (n-2) = ( 1+ n 1) ( n 1) 1 2 = 2 n = O( n ) Vergleiche. aufwendiges und langsames Verfahren (Nachteil dieses Verfahrens: auch bei einem Feld, das bereits sortiert vorgegebenen ist, werden n-1 Durchläufe gemacht. Man könnte den Algorithmus verbessern, wenn man eine flag-variable mitführt, die sich die Anzahl der Vertauschungen eines Durchlaufes merkt. Wenn nämlich bei einem Durchlauf keine Vertauschungen mehr stattgefunden haben, dann ist das Feld bereits sortiert.) Es werden mit den Schülern auch die beiden Algorithmen (Selection Sort und Bubble Sort) in Bezug auf ihren Aufwand (Anzahl der Durchläufe, Vergleiche und Tauschoperationen) miteinander verglichen. Aufgabenstellung: (1) Schreibe ein iteratives Programm für Bubble Sort! (2) Schreibe ein rekursives Programm für Bubble Sort! (3) Ergänze Dein Programm um oben angeführten Verbesserungsvorschlag (flag)! Bei allen drei Aufgaben ist zuvor ein Blockbild zu erstellen! Evelin Kofler Bubble Sort Seite 3
4 Realisierung der iterativen Lösung Blockbild Grobentwurf: mit Hilfe des Zufallszahlengenerators anz ganze Zahlen aus dem Intervall [a,b] erzeugen die unsortierte Zahlenliste liste (zur Kontrolle) ausgeben die Zahlen (aufsteigend) sortieren die sortierte Zahlenliste ausgeben Benötigte Unterprogramme: generieren ( a, b, anz, liste) ausgeben ( anz, liste) bubble_sort ( anz, liste) generieren ( a, b, anz, liste) FOR i = 1 TO anz liste[i-1] generierte Zufallszahl aus [a,b] ausgeben ( anz, liste) FOR i = 1 TO anz A: liste[i-1] bubble_sort ( anz, liste) FOR ende = anz TO 2 BY -1 FOR i = 1 TO ende-1 IF liste[i-1] > liste[i] THEN dummy liste[i-1] liste[i-1] liste[i] liste[i] dummy Evelin Kofler Bubble Sort Seite 4
5 Programmcode in C (iterative Version) /* Autor : Evelin Kofler Datum : 3. Dezember 2001 Dateiname : bubble.cpp Funktion : aufsteigende Sortierung einer mit Hilfe des Zufallszahlengenerators generierten Zahlenliste nach dem Bubble Sort Algorithmus; iterative Lösung */ #include <stdio.h> #include <conio.h> #include <time.h> #include <stdlib.h> /*** globale Deklarationen ***/ const int maxanz = 25000; /* maximale Feldlaenge */ typedef int feld[maxanz]; /* Feld fuer ganze Zahlen */ /*** Prototypen ***/ void generieren(int a, int b, int anz, feld liste); /* <liste> enthaelt danach <anz> ganze Zahlen aus dem Wertebereich [a,b], die mit Hilfe eines Zufallszahlengenerators erzeugt werden */ void ausgeben(int anz, feld liste); /* gibt alle <anz> Elemente, die in <liste> gespeichert sind, aus */ void bubble_sort(int anz, feld liste); /* sortiert die <anz> Elemente, die in <liste> gespeichert sind, aufsteigend */ /*** Codierung der Unterprogramme ***/ void generieren(int a, int b, int anz, feld liste) int i; /* Zaehlvariable */ for(i=1;i<=anz;i++) liste[i-1]=random(b-a+1)+a; /* end generieren */ void ausgeben(int anz, feld liste) int i; /* Zaehlvariable */ for(i=1;i<=anz;i++) printf("%5d\t",liste[i-1]); /* end ausgeben */ Evelin Kofler Bubble Sort Seite 5
6 void bubble_sort(int anz, feld liste) int ende, /* Laenge des noch zu sortierenden Listenbereichs */ i; /* Zaehlvariable innerhalb eines Durchlaufs */ int dummy; /* Hilfsvariable fuer den Tausch zweier Zahlen */ for(ende = anz; ende >= 2; ende--) /* fuehre einen Durchlauf aus */ for(i = 1; i <= ende-1; i++) if (liste[i-1] > liste[i]) /* die beiden Elemente vertauschen */ dummy = liste[i-1]; liste[i-1] = liste[i]; liste[i] = dummy; /* end bubble_sort */ /******* Hauptprogramm ********/ void main() int ug, og, /* Grenzen des Wertebereichs, aus dem */ anz; /* anz Zufallszahlen generiert werden sollen */ feld zahlen; /* zu sortierende Zahlen */ /* Ausgabe einer Benutzerinfo und */ /* Einlesen der benoetigten Werte */ clrscr(); printf("\n\ndieses Programm sortiert Ihnen die von Ihnen angegebene"); printf("\nanzahl (max. %d) von Zufallszahlen aus dem von Ihnen ", maxanz); printf("\nvorgegebenen Wertebereich.\n\n\n"); printf("\ngewuenschte Anzahl von Zahlen : "); scanf("%d",&anz); while (anz<1 anz > maxanz) printf("\nunzulaessige Anzahl (max. %d) --> ",maxanz); printf("\ngewuenschte Anzahl von Zahlen : "); scanf("%d",&anz); printf("\nuntergrenze : "); scanf("%d",&ug); printf("\nobergrenze : "); scanf("%d",&og); while (og <= ug) printf("\n[%d,%d] ist ein unzulaessiges Intervall!!",ug,og); printf("\nuntergrenze : "); scanf("%d",&ug); printf("\nobergrenze : "); scanf("%d",&og); /* zu sortierende Zahlenliste erzeugen */ generieren(ug,og,anz,zahlen); /* unsortierte Liste ausgeben */ printf("\n\nunsortierte Liste :\n\n"); ausgeben(anz,zahlen); /* Zahlenliste sortieren */ bubble_sort(anz,zahlen); /* sortierte Liste ausgeben */ printf("\n\nsortierte Liste :\n\n"); ausgeben(anz,zahlen); /* end main */ Evelin Kofler Bubble Sort Seite 6
7 Programmcode in C (rekursive Version) /* Autor : Evelin Kofler Datum : 3. Dezember 2001 Dateiname : bubble_r.cpp Funktion : aufsteigende Sortierung einer mit Hilfe des Zufallszahlengenerators generierten Zahlenliste nach dem Bubble Sort Algorithmus; rekursive Version */ #include <stdio.h> #include <conio.h> #include <time.h> #include <stdlib.h> /*** globale Deklarationen ***/ const int maxanz = 25000; /* maximale Feldlaenge */ typedef int feld[maxanz]; /* Feld fuer ganze Zahlen */ /*** Prototypen ***/ void generieren(int a, int b, int anz, feld liste); /* <liste> enthaelt danach <anz> ganze Zahlen aus dem Wertebereich [a,b], die mit Hilfe eines Zufallszahlengenerators erzeugt werden */ void ausgeben(int anz, feld liste); /* gibt alle <anz> Elemente, die in <liste> gespeichert sind, aus */ void bubble_sort_rec(int anz, feld liste); /* sortiert die <anz> Elemente, die in <liste> gespeichert sind, aufsteigend */ /*** Codierung der Unterprogramme ***/ void generieren(int a, int b, int anz, feld liste) int i; /* Zaehlvariable */ for(i=1;i<=anz;i++) liste[i-1]=random(b-a+1)+a; /* end generieren */ void ausgeben(int anz, feld liste) int i; /* Zaehlvariable */ for(i=1;i<=anz;i++) printf("%5d\t",liste[i-1]); /* end ausgeben */ Evelin Kofler Bubble Sort Seite 7
8 void bubble_sort_rec(int anz, feld liste) int i, /* Zaehlvariable innerhalb eines Durchlaufs */ dummy; /* Hilfsvariable fuer den Tausch zweier Zahlen */ if (anz > 1) /* es liegt noch ein unsortierter Teil vor */ /* fuehre einen Durchlauf aus */ for(i = 1; i <= anz-1; i++) if (liste[i-1] > liste[i]) /* die beiden Elemente vertauschen */ dummy = liste[i-1]; liste[i-1] = liste[i]; liste[i] = dummy; /* sortiere das noch verbleibende Feld */ bubble_sort_rec(anz-1,liste); /* andernfalls ist nichts mehr zu sortieren */ /* end bubble_sort_rec */ /******* Hauptprogramm ********/ void main() int ug, og, /* Grenzen des Wertebereichs, aus dem */ anz; /* anz Zufallszahlen generiert werden sollen */ feld zahlen; /* zu sortierende Zahlen */ /* Ausgabe einer Benutzerinfo und */ /* Einlesen der benoetigten Werte */ clrscr(); printf("\n\ndieses Programm sortiert Ihnen die von Ihnen angegebene"); printf("\nanzahl (max. %d) von Zufallszahlen aus dem von Ihnen ", maxanz); printf("\nvorgegebenen Wertebereich.\n\n\n"); printf("\ngewuenschte Anzahl von Zahlen : "); scanf("%d",&anz); while (anz<1 anz > maxanz) printf("\nunzulaessige Anzahl (max. %d) --> ",maxanz); printf("\ngewuenschte Anzahl von Zahlen : "); scanf("%d",&anz); printf("\nuntergrenze : "); scanf("%d",&ug); printf("\nobergrenze : "); scanf("%d",&og); while (og <= ug) printf("\n[%d,%d] ist ein unzulaessiges Intervall!!",ug,og); printf("\nuntergrenze : "); scanf("%d",&ug); printf("\nobergrenze : "); scanf("%d",&og); /* zu sortierende Zahlenliste erzeugen */ generieren(ug,og,anz,zahlen); /* unsortierte Liste ausgeben */ printf("\n\nunsortierte Liste :\n\n"); ausgeben(anz,zahlen); /* Zahlenliste sortieren */ bubble_sort_rec(anz,zahlen); /* sortierte Liste ausgeben */ printf("\n\nsortierte Liste :\n\n"); ausgeben(anz,zahlen); /* end main */ Evelin Kofler Bubble Sort Seite 8
9 Auf Peter s Wunsch auch noch in einer zweiten Sprache (iterative Version) Aus Sentimentalität habe ich Modula-2 als zweite Sprache gewählt ;-) IntegerArray = ARRAY [1..100] OF INTEGER; PROCEDURE BubbleSort(anz : INTEGER; VAR liste : IntegerArray); VAR i, ende, dummy : INTEGER; BEGIN FOR ende := anz TO 2 BY 1 DO FOR i := 1 TO ende-1 DO IF liste[i] > liste[i+1] THEN dummy := liste[i]; liste[i] := liste[i+1]; liste[i+1] := dummy END (* IF *) END (* FOR i *) END (* FOR ende *) END BubbleSort; Evelin Kofler Bubble Sort Seite 9
Schiller-Gymnasium Hof
In der Informatik gibt es eine Vielzahl von Sortieralgorithmen, einen einfachen wollen wir uns vorerst noch ansehen: Der Bubble-Sort-Algorithmus Wir haben nicht sortiertes Datenfeld, z.b. $j 17 5 3 7 Wir
MehrMusterlösung: 12. Jgst. 2. Kursarbeit Datum: Fach: Informationsverarbeitung (LK)
Musterlösung: 12. Jgst. 2. Kursarbeit Datum: 15.01.2007 Klasse: GY 05 c Fach: Informationsverarbeitung (LK) Themen: C++ (Schleifen; Funktionen; ein- & mehrdimensionale Arrays; Zufallszahlen; Sortierverfahren)
MehrInterne Sortierverfahren
Angewandte Datentechnik Interne Sortierverfahren Interne Sortierverfahren Ausarbeitung einer Maturafrage aus dem Fach A n g e w a n d t e D a t e n t e c h n i k Andreas Hechenblaickner 5CDH HTBLA Kaindorf/Sulm
Mehr7. Sortieren Lernziele. 7. Sortieren
7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche
MehrEinfache Sortierverfahren in Java, 1. Version
Einfache Sortierverfahren in Java, 1. Version http://www.r-krell.de 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
MehrElementare Sortierverfahren
Algorithmen und Datenstrukturen I Elementare Sortierverfahren Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 18:16 Inhaltsverzeichnis Sortieren.......................................
MehrSortieralgorithmen. Selection Sort
intuitivster Suchalgorithmus Sortieralgorithmen Selection Sort In jedem Schritt wird das kleinste Element im noch unsortierten Array gesucht und ans Ende des bisher sortierten Teilarrays gehangen 3 1 4
MehrEinfache Sortierverfahren in Java, 2. Version
Einfache Sortierverfahren in Java, 2. Version http://www.r-krell.de Datei IntSortReihe2.java 1 // Verschiedene einfache Sortierverfahren + BucketSort 2 // Der (Zeit-)Aufwand nimmt mit (reihung.length)^2
MehrProgrammierung mit C Algorithmen
Programmierung mit C Algorithmen Informationen /7/ Robert Sedgewick Algorithmen in C. 742 Seiten, ISBN 3-827-37182-1. /8/ Kyle Loudon Algorithmen mit C, ISBN 3-4897-211653-0. Online-Buch "C von A bis Z",
MehrGI Vektoren
Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 9. Sortieren
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 9 Sortieren Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69, A-4040 Linz Sortieren :: Problemstellung
Mehrfile:///h:/dokumente/_fh/ ws /etinfoii/vorlesung/infoi...
3.2 Doppelzeiger Wie im letzten Kapitel erläutert, sind Doppelzeiger Zeiger, die auf einen weiteren Zeiger verweisen. Doppelzeiger werden unter anderem dann benötigt, wenn eine Matrix, die sowohl in der
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung
MehrÜbung Datenstrukturen. Sortieren
Übung Datenstrukturen Sortieren Aufgabe 1 Gegeben sei nebenstehender Sortieralgorithmus für ein Feld a[] ganzer Zahlen mit N Elementen: a) Um welches Sortierverfahren handelt es sich? b) Geben Sie möglichst
MehrÜbersicht. Datenstrukturen und Algorithmen. Divide-and-Conquer. Übersicht. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Algorithmus Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-5/dsal/ 2 7.
MehrGrundlegende Sortieralgorithmen
Grundlegende Sortieralgorithmen Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 01/05 2 Ziele Grundlegende Sortieralgorithmen auf Reihungen kennen lernen 3 Klassifizierung
MehrCopyright, Page 1 of 7 Heapsort
www.mathematik-netz.de Copyright, Page 1 of 7 Heapsort Alle grundlegenden, allgemeinen Sortierverfahren benötigen O(n 2 ) Zeit für das Sortieren von n Schlüsseln. Die kritischen Operationen, d.h. die Auswahl
MehrGrundlegende Sortieralgorithmen
Grundlegende Sortieralgorithmen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Grundlegende Sortieralgorithmen auf Reihungen kennen
MehrJAVA - Suchen - Sortieren
Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik
MehrArrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss
Arrays FTI 41 2005-09-09 Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss z.b. Dim Werte(x) As Single. Wobei
Mehr3.2. Divide-and-Conquer-Methoden
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE 3.2. Divide-and-Conquer-Methoden Divide-and-Conquer-Methoden Einfache Sortieralgorithmen reduzieren die Größe des noch
MehrProgrammiertechnik II
Sortieren: Einfache Algorithmen Sortieren Abstrakte Operation geg: Menge von items (Elemente) jedes Element besitzt Sortierschlüssel Schlüssel unterliegen einer Ordnung eventuell sind doppelte Schlüssel
MehrSortierverfahren. 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
MehrMergesort. Inhaltsverzeichnis. Veranschaulichung der Funktionsweise. aus Wikipedia, der freien Enzyklopädie
Mergesort aus Wikipedia, der freien Enzyklopädie Mergesort ist ein rekursiver, stabiler Sortieralgorithmus, der ähnlich wie Quicksort nach dem Prinzip Teile und herrsche (engl. Divide and conquer) arbeitet.
MehrDatenstrukturen und Algorithmen
Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de 4. Sortierverfahren Elementare Sortierverfahren - Sortieren durch
MehrAlgorithmen und Datenstrukturen 1 VL Übungstest WS November 2008
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 1. Übungstest WS 2008 07. November
MehrKurs 1613 Einführung in die imperative Programmierung
Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { Programm sortiert das Eingabefeld iofeld aufsteigend var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1;
MehrInformatik 1 ( ) D-MAVT F2010. Pointer, Structs, Sortieren. Yves Brise Übungsstunde 6
Informatik 1 (251-0832-00) D-MAVT F2010 Pointer, Structs, Sortieren Aufgabe 1.1 Werden die Variablen später noch gebraucht? for (double d = 13, double e = 0;...) {... Ja... dann e vorher deklarieren. In
MehrGrundlegende Sortieralgorithmen
Grundlegende Sortieralgorithmen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch Sortieren in Java Man kann Sortierverfahren in einem imperativem oder einem objektorientierten Stil programmieren.
MehrAufgabe : Laufzeit von Selection Sort
Aufgabe : Laufzeit von Selection Sort public class SelectionSort{ int [] liste = {4,7,2,9,5,1; void selectionsort () { for (int i = 0;i < liste.length-1;i = i + 1) { int position_minelement; /* Suche des
MehrProgrammieren in C/C++: Klausur 2 ( )
Programmieren in C/C++: Klausur 2 (12.12.2007) Schreiben Sie jeweils ein Codefragment (ohne Eingabe oder Ausgabe), das die gewünschten Aufgabenstellungen bearbeitet. Bei den Variablen, deren Namen unterstrichen
MehrAufgabenblatt: Arrays
Aufgabenblatt: Arrays - Seite 1 Aufgabenblatt: Arrays (1.) (a.) Erstellen Sie eine Methode, die in einem Array von Zahlen nach einem bestimmten Wert sucht! static int LinearSearch(int searchvalue, int
MehrKurs 1613 Einführung in die imperative Programmierung Lösungen der Aufgaben zum Studientag
Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { Programm sortiert das Eingabefeld iofeld aufsteigend var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1;
MehrKap 7. Funktionen und Arrays
Kap 7. Funktionen und Arrays Elementare Algorithmen Allgemein Mathematik Text Eingabe ٧ Skalarprodukt wie Allgemein Ausgabe ٧ Länge ersetzen Summation Winkel Laenge Maximum ٧ Polynome berechnen ausschneiden
MehrSortieren. Eine Testmenge erstellen
Sortieren Eine der wohl häufigsten Aufgaben für Computer ist das Sortieren, mit dem wir uns in diesem Abschnitt eingeher beschäftigen wollen. Unser Ziel ist die Entwicklung eines möglichst effizienten
Mehr(08 - Einfache Sortierverfahren)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (08 - Einfache Sortierverfahren) Prof. Dr. Susanne Albers Sortieren Motivation, Einführung Datenbestände müssen sehr oft sortiert werden, etwa um
Mehr3. Hausübung Algorithmen und Datenstrukturen
Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 3. Hausübung Algorithmen und Datenstrukturen Sommersemester 2009 Abgabetermin: Montag, 18.05.2009, 10:00 Uhr 11.05.2009
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt
MehrEinführung in die Informatik Algorithmen und Datenstrukturen. Thema 17 Sortieren
Einführung in die Informatik Algorithmen und Datenstrukturen Thema 17 Sortieren Sortierproblem Es gibt eine Menge von Datensätzen, und jeder dieser Sätze besitzt einen (möglichst eindeutigen) Schlüssel.
MehrAlgorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe
MehrHochschule Darmstadt Informatik-Praktikum SS 2018 EIT Bachelor 3. Aufgabenblatt Funktionen - Unterprogramme
Ziel ist die Aufteilung eines Programms in Funktionen und Dateien Aufgabe 3: Diese Aufgabe ist die Weiterentwicklung von Aufgabe 2. Es ist ein Programm zu erstellen, in welchem der Anwender aus einer Anzahl
MehrInformatik II, SS 2016
Informatik II - SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 2 (22.4.2016) Sortieren II Algorithmen und Komplexität SelectionSort: Programm Schreiben wir doch das gleich mal als Java/C++ - Programm
MehrAbschnitt 19: Sortierverfahren
Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758
MehrKapitel 10. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrDatenstrukturen. Sortieralgorithmen. am Beispiel Java. c Y. Pfeifer. (Mai 2013)
Datenstrukturen Sortieralgorithmen am Beispiel Java c Y. Pfeifer (Mai 013) 1 Sortieralgorithmen 1.1 Straight Insertion Bei diesem Einfügeverfahren wird eine Zahlenreihe mit n Elementen von links nach rechts
MehrEinführung in die Informatik I Kapitel II.3: Sortieren
1 Einführung in die Informatik I Kapitel II.3: Sortieren Prof. Dr.-Ing. Marcin Grzegorzek Juniorprofessur für Mustererkennung im Institut für Bildinformatik Department Elektrotechnik und Informatik Fakultät
MehrInhalt. 3. Spezielle Algorithmen
Inhalt 0. Rechner und Programmierung für Kommunikationstechniker und Mechatroniker 1. Algorithmen - Wesen, Eigenschaften, Entwurf 2. Darstellung von Algorithmen mit Struktogrammen und Programmablaufplänen
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 4 (30.4.2018) Sortieren IV Algorithmen und Komplexität Analyse Merge Sort Laufzeit T(n) setzt sich zusammen aus: Divide und Merge: O n
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Sortierverfahren 1. Schreibtischtest 2. Stabilität 3. Sortierung spezieller Arrays 4. Untere
MehrÜbung: Algorithmen und Datenstrukturen SS 2007
Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 5 Votierung in der Woche vom 04.06.0708.06.07 Aufgabe 12 Manuelle Sortierung
MehrDie Formel für die Standardabweichung lautet (ohne die Wurzel haben wir die Varianz):
Mittelwert und Standardabweichung Klasse: StandardDeviation Schreiben Sie ein Programm StandardDeviation, das von den zufällig erzeugten Werten eines Arrays beliebiger Größe den Mittelwert und die Standardabweichung
MehrSuchen und Sortieren
Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles
MehrAlgorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Spezielle Sortierverfahren Autor: Sven Schuierer
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Spezielle Sortierverfahren Autor: Sven Schuierer Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg 1
MehrSortieren durch Mischen (Mergesort; John von Neumann 1945)
Sortieren durch Mischen (Mergesort; John von Neumann 1945) Gegeben folgendes Feld der Größe 10. 3 8 9 11 18 1 7 10 22 32 Die beiden "Hälften" sind hier bereits vorsortiert! Wir können das Feld sortieren,
MehrKonzepte der Informatik
Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Konzepte der Informatik Vorkurs Informatik zum WS 2013/2014 16.09. - 27.09.2013 Dr. Werner Struckmann / Hendrik Freytag 1. April 2010
MehrProf. H. Herbstreith Fachbereich Informatik. Leistungsnachweis. Informatik 1 WS 2001/2002
Prof. H. Herbstreith 30.01.2002 Fachbereich Informatik Leistungsnachweis Informatik 1 WS 2001/2002 Bearbeitungszeit 120 Minuten. Keine Hilfsmittel erlaubt. Aufgabe 1: 20 Punkte Vervollständigen Sie folgende
Mehrfloat *point(float a, float b); // Funktionsdeklaration Zeiger als Funktionswert // point liefert als Wert die Adresse seines Ergebnisses
Zeiger auf Funktionen 1 Zeiger als Funktionswert... 1 2 "Zeiger als Funktionswert" versus "Zeiger auf eine Funktion"... 2 2.1 Das Beispiel zu Zeiger auf eine Funktion veranschaulicht den Sachverhalt...
MehrQuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert
4.3.6 QuickSort QuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert QuickSort teilt das gegebene Array anhand
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Am Freitag, 9. Juni 2006, erfolgt in der Vorlesung eine Zusammenfassung der Vorlesungsinhalte als Vorbereitung auf die
MehrPrimzahlen und Programmieren
Primzahlen Wir wollen heute gemeinsam einen (sehr grundlegenden) Zusammenhang zwischen Programmieren und Mathematik herstellen. Die Zeiten in denen Mathematiker nur mit Zettel und Stift (oder Tafel und
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Sortieren von Feldern (1) Einfache Sortieralgorithmen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 82 Motivation Natürliche Sortierung Sortierte Datenmengen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrTutoraufgabe 1 (Sortieralgorithmus):
Prof. aa Dr. Ir. Joost-Pieter Katoen Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung 4 (Abgabe 2..2) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Sortieralgorithmus):
MehrThema der Unterrichtseinheit: Sortieralgorithmus Bubblesort (Sortieren durch Vertauschen)
Lehrprobenentwurf Vorgelegt von: Guido Breuer Datum: 18. April 2005 Zeit: 9.20 10.10 Uhr Schule: Robert-Schuman-Institut Eupen Klasse: 5. Jahr technische Befähigung, Industrie-Elektronik / Industrie-Informatik
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Sortieren von Feldern (2) Effiziente Sortieralgorithmen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 124 Quicksort Dr. Frank Seifert Vorlesung Datenstrukturen
MehrAlgorithmen und Datenstrukturen. Kapitel 3: Sortierverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Algorithmen und Datenstrukturen Kapitel 3: Sortierverfahren Skript zur Vorlesung Algorithmen und Datenstrukturen Sommersemester
Mehr2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :
2 Sortieren Das Sortieren einer Datenfolge ist eines der am leichtesten zu verstehenden und am häufigsten auftretenden algorithmischen Probleme. In seiner einfachsten Form besteht das Problem darin, eine
MehrProf. Dr. Margarita Esponda
Algorithmen und Programmieren II Sortieralgorithmen imperativ Teil I Prof. Dr. Margarita Esponda Freie Universität Berlin Sortieralgorithmen Bubble-Sort Insert-Sort Selection-Sort Vergleichsalgorithmen
MehrAufgabe (Schreibtischtest, Algorithmenanalyse)
Aufgabe (Schreibtischtest, Algorithmenanalyse) Führen Sie einen Schreibtischtest für den Algorithmus Positionsort für das folgende Eingabe-Array durch. Geben Sie nach jedem Durchlauf der for-schleife mit
MehrINSERTION-SORT: Ja, Es wird immer das erste, kleinste Element an die neue Liste angehängt.
Aufgabe 1 INSERTION-SORT: Ja, Es wird immer das erste, kleinste Element an die neue Liste angehängt. QUICK-SORT: Hängt davon ab ob PARTITION stabil ist. MERGE-SORT: Ja, Splitten, sowie Mergen ist stabil.
MehrWie funktioniert das Sortieren einer Reihe von Zufallszahlen mit Quicksort?
Wie funktioniert das Sortieren einer Reihe von Zufallszahlen mit Quicksort? Seite 1 Sehen wir uns zunächst einmal die grundsätzliche Vorgehensweise des Programmes an, ohne auf Einzelheiten oder Fachtermini
MehrTutoraufgabe 1 (Hoare-Kalkül):
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet
MehrAufgabe (Schreibtischtest, lexikographische Ordnung)
Aufgabe (Schreibtischtest, lexikographische Ordnung) Führen Sie einen Schreibtischtest für den Algorithmus Bubblesort aus der VL für die folgenden Eingabe-Arrays durch. Geben Sie das Array S nach jedem
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
MehrDynamisches Huffman-Verfahren
Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über
MehrAlgorithmen und Datenstrukturen Heapsort
Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das
MehrKap 6. Arrays und Algorithmen
Kap 6. Arrays und Algorithmen Aufgaben mit Arrays/exemplarische Beispiele Aufgabe Allgemein Mathematik Informatik Eingabe X X X Ausgabe X X X Initialisierung X X X Summe/Mittelwert X X X Maximum/Minimum
MehrLineare Kongruenzgeneratoren und Quicksort
Seminar Perlen der theoretischen Informatik Dozenten: Prof. Johannes Köbler und Olaf Beyersdorff Lineare Kongruenzgeneratoren und Quicksort Ausarbeitung zum Vortrag Mia Viktoria Meyer 12. November 2002
MehrLabor Software-Entwicklung 1
Fakultät für Technik STUDIENGANG MEDIZINTECHNIK Labor Software-Entwicklung 1 Vorbereitungsaufgaben zu Versuch 4 C-Programmierung Rekursion Wintersemester 2015/2016 Seite 1 von 7 Vorbemerkungen Literatur
MehrSortieralgorithmen. Direkte Sortierverfahren & Shellsort, Quicksort, Heapsort. Vorlesung Algorithmen und Datenstrukturen 2 im SS 2004
Sortieralgorithmen Direkte Sortierverfahren & Shellsort, Quicksort, Heapsort Vorlesung Algorithmen und Datenstrukturen 2 im SS 2004 Prof. Dr. W. P. Kowalk Universität Oldenburg Algorithmen und Datenstrukturen
MehrKapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten
Kapitel 7 Zusammengesetzte Datentypen, Vektoren, Zeichenketten 1 Gliederung Kapitel 7 Zusammengesetzte Datentypen 7.1 Vektoren 7.2 Sortieren eines Vektors 7.3 Mehrdimensionale Felder 7.4 Umgang mit ein-/zweidimensionalen
MehrFolge 13 - Quicksort
Für Abiturienten Folge 13 - Quicksort 13.1 Grundprinzip des Quicksort Schritt 1 Gegeben ist ein unsortierter Array von ganzen Zahlen. Ein Element des Arrays wird nun besonders behandelt, es wird nämlich
MehrGliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen
5. Compiler Gliederung 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume
Mehr10. Fortgeschrittene Programmiertechniken Fortgeschrittene Programmiertechniken
Fortgeschrittene Programmiertechniken 10-1 Zu den fortgeschrittenen Techniken gehören: Verwendung von komplexeren Datenstrukturen, z. B. von geschachtelten Strukturen, Baumstrukturen usw. Verwendung von
MehrDAP2 Praktikum Blatt 2
Fakultät für Informatik Lehrstuhl 11 / Algorithm Engineering Prof. Dr. Petra Mutzel, Carsten Gutwenger Sommersemester 2009 DAP2 Praktikum Blatt 2 Ausgabe: 28. April Abgabe: 13. 15. Mai Langaufgabe 2.1
Mehr1. Teilklausur. Name:... Vorname:... Matrikel-Nummer:...
ALP II Objektorientierte Programmierung SS 2012 Prof. Dr. Margarita Esponda 1. Teilklausur Name:... Vorname:... Matrikel-Nummer:... Ich bin mit der Veröffentlichung der Klausurergebnisse mit Matrikel-Nummer
MehrProgrammiertechnik 1 FOR-SCHLEIFEN
Programmiertechnik 1 FOR-SCHLEIFEN In diesem Dokument wollen wir uns mit Kontrollstrukturen befassen. Dazu sind im Folgenden einige Übungsaufgaben zu den Themen Schleifen (FOR, WHILE, DO) und Bedingungen
MehrVariablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes
Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!
MehrMussten wir eine ganze Reihe solcher Zahlen speichern, haben wir das eindimensionale Array verwendet.
C Zweidimensionale Arrays Fachspezifische Softwaretechnik 1 Scriptum 2017 HTL St.Pölten Elektronik und Technische Informatik EL Autor: Kuran Zweidimensionale Arrays: Bisher konnten wir in Variablen einfache
MehrFelder. Inhaltsverzeichnis. M. Jakob. 28. April Begriffsbildung. Verwendung von Feldern. Gymnasium Pegnitz
M. Jakob Gymnasium Pegnitz 28. April 2015 Inhaltsverzeichnis Gliederung 3 / 19 Beispiel Ergebnistabelle 100m-Lauf Platzierung 1 2 3... 8 Zeit/s 10.1 11.2 12.3... 15.7 auch Arrays genannt, benutzt man um
Mehr7. Parallele Algorithmen für FPGA-Implementierungen
7. Parallele Algorithmen für FPGA-Implementierungen Odd-Even-Transposition-Sort für 8 Elemente Ein sinnvolles Werkzeug bei der Entwicklung und dem Beweis von Sortierverfahren ist das 0-1-Pinzip. 0-1-Prinzip
MehrZiele. Kapitel 10: Komplexität von Algorithmen und Sortierverfahren. Beispiel: Lineare Suche eines Elements in einem Array (1)
Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Ziele Kapitel 10: Komplexität von Algorithmen und Sortierverfahren Prof. Dr. David Sabel Lehr- und Forschungseinheit
MehrAufgabe 1 ZUFÄLLIGES ENGLISCH. »Programmieren«, WS 2006/2007. Nino Simunic M.A.
»Programmieren«, WS 2006/2007 Nino Simunic (nino.simunic@uni-due.de) Übungsblatt 5 Aufgabe 1 ZUFÄLLIGES ENGLISCH Der folgende Quelltext zeigt Ihnen, wie man Zufallszahlen erzeugen kann. Dazu benötigt wird
Mehr