AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Komplexität eines Algorithmus abschätzen
Thema durchsuchen
Ansicht
Themen-Optionen

Komplexität eines Algorithmus abschätzen

Ein Thema von Alexander · begonnen am 9. Dez 2004 · letzter Beitrag vom 10. Dez 2004
Antwort Antwort
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#1

Komplexität eines Algorithmus abschätzen

  Alt 9. Dez 2004, 12:43
Hallo,
ich habe schon öfter Komplexitätsangaben von veschiedenen (Sortier-) Algorithmen gesehen.
Mich würde mal interessieren, wie man die abschätzen kann, ohne groß zu rechnen und Messungen durchzuführen. Es soll dann natürlich nur eine ungefähre Angabe sein.
Bei den Sortieralgorithmen gibt es ja im Prinzip zwei Gruppen, die mit einer logarithmischen und einer quadratischen Komplexität.
Mich würde das einfach mal interessieren
Alexander
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Komplexität eines Algorithmus abschätzen

  Alt 9. Dez 2004, 14:02
Zitat von Alexander:
ich habe schon öfter Komplexitätsangaben von veschiedenen (Sortier-) Algorithmen gesehen.
Mich würde mal interessieren, wie man die abschätzen kann, ohne groß zu rechnen und Messungen durchzuführen. Es soll dann natürlich nur eine ungefähre Angabe sein.
Bei den Sortieralgorithmen gibt es ja im Prinzip zwei Gruppen, die mit einer logarithmischen und einer quadratischen Komplexität.
Es gibt mehr "Gruppen":
Code:
linear:         O(N)=N
logarithmisch:  O(N)=N*Log(N)
quadratisch:    O(N)=N*N
kubisch(*):     O(N)=N^3
potenziert(*):  O(N)=2^N
fakultät(*):    O(N)=N!
die Bezeichnungen mit dem * habe ich erfunden.
In der O-Schreibweise bezeichnet das Argument N die Anzahl der Eingangsdaten und O(N) ist
annähernd proportional der Laufzeit.
Man kann jetzt nicht behaupten, dass ein quadratischer Algo schneller als ein logarithmischer ist,
aber bei grossen Werten von N wird der logarithmische besser abschneiden.
Andreas
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#3

Re: Komplexität eines Algorithmus abschätzen

  Alt 9. Dez 2004, 20:50
Hi, gibt es einen linearen Sortieralgo ? Sortieralgorithmen sind nicht ganz so mein Gebiet

Kannst du mir auch noch sagen, wie man jetzt ungefähr die Komplexität eines unbekannten Algos abschätzen kann. Mich interessiert das nur mal...
Wäre super nett von dir
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#4

Re: Komplexität eines Algorithmus abschätzen

  Alt 9. Dez 2004, 20:57
Zitat von Alexander:
Hi, gibt es einen linearen Sortieralgo ? Sortieralgorithmen sind nicht ganz so mein Gebiet
Wenn Du einen findest bist Du reich: Quicksort ist derzeit der schnellste bekannte Sortieralgoritmus und hat loragrithmische Komplexität.

Allerdings kannst Du mit linearem Aufwand feststellen, ob etwas sortiert ist oder nicht.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
LarsMiddendorf

Registriert seit: 4. Sep 2003
Ort: Hemer
104 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Komplexität eines Algorithmus abschätzen

  Alt 9. Dez 2004, 22:27
Radix Sort sortiert mit linearem Aufwand. Allerdings nicht durch Vertauschen oder Vergleichen, sondern die Position eines Elementes wird direkt errechnet, was ja zumindest bei Zahlen nicht weiter schwer aber auch nicht wirklich nützlich ist.
Beim Sortieren durch Vergleichen und Vertauschen ohne zusätzlichen Speicher kann man glaube ich auch Beweisen, dass es keinen schnelleren Algorithmus geben kann. Ich glaube der Beweis geht so, dass man für jedes Element einen binären Entscheidungsbaum aufstellt, der dann natürlich eine Tiefe von log(n), also log(n) Entscheidungen, enthält und das ganze dann n Mal durchgeführt wird.
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Komplexität eines Algorithmus abschätzen

  Alt 9. Dez 2004, 22:34
Die einfachsten Algos. also Selection und Insection sind doch linear.
Für jedes Element mehr, musst du einmal mehr über die noch vorhandenen Elemente laufen.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#7

Re: Komplexität eines Algorithmus abschätzen

  Alt 9. Dez 2004, 22:39
Zitat:
Wenn Du einen findest bist Du reich: Quicksort ist derzeit der schnellste bekannte Sortieralgoritmus und hat loragrithmische Komplexität.
Das stimmt wohl so glaub ich nicht ganz 100 prozentig.
Laut einem schlauen Algorithmen Buch, in dem ich mal gelesen hatte, kann man Quicksort noch optimieren, wenn man zum Ende der Sortierung auf einen anderen Algorithmus wechselt.
(genaueres habe ich nicht untersucht, wäre mir für Standardaufgaben auch der Aufwand nicht wert
Quicksort hat den Vorteil, dass es die Elemente über "große Reichweiten" transportieren kann.
Auch in dem besonderen Falln, wenn Du schon eine fast sortierte Datenmenge vorliegen hast, ist Quicksort auch fehl am Platz.
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#8

Re: Komplexität eines Algorithmus abschätzen

  Alt 9. Dez 2004, 22:44
Zitat:
Laut einem schlauen Algorithmen Buch, in dem ich mal gelesen hatte, kann man Quicksort noch optimieren, wenn man zum Ende der Sortierung auf einen anderen Algorithmus wechselt.
Das ist nichts neues.
Wird in Daniels Suchalgorithmen-Tutorial auch erwähnt.
Man sortiert per QuickSort, und gegen Ende sortiert man den Rest mit Insertion Sort, dadurch kann man das Ganze nochmal beschleunigen.
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#9

Re: Komplexität eines Algorithmus abschätzen

  Alt 9. Dez 2004, 22:48
Zitat:
Mich würde mal interessieren, wie man die abschätzen kann, ohne groß zu rechnen und Messungen durchzuführen. Es soll dann natürlich nur eine ungefähre Angabe sein.
Hallo Alex,

um Deine Grundfrage zu beantworten, irgendwo in der Mitte steht wohl was genaueres über Deine Frage

http://www.sts.tu-harburg.de/~r.f.mo...rlesung-17.pdf
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#10

Re: Komplexität eines Algorithmus abschätzen

  Alt 10. Dez 2004, 16:55
Zitat von stoxx:
Zitat:
Mich würde mal interessieren, wie man die abschätzen kann, ohne groß zu rechnen und Messungen durchzuführen. Es soll dann natürlich nur eine ungefähre Angabe sein.
Hallo Alex,

um Deine Grundfrage zu beantworten, irgendwo in der Mitte steht wohl was genaueres über Deine Frage

http://www.sts.tu-harburg.de/~r.f.mo...rlesung-17.pdf
Danke habe mir die SEiten gerade durchgelesen. Da kann ich schon was mit anfangen.
Wenn ihr noch mehr Infos habt, dann nur her damit

Zitat von Phoenix:
Wenn Du einen findest bist Du reich: Quicksort ist derzeit der schnellste bekannte Sortieralgoritmus und hat loragrithmische Komplexität.

Allerdings kannst Du mit linearem Aufwand feststellen, ob etwas sortiert ist oder nicht.
Habe ich mir nämlich schon gedacht, daher die Frage . Mir waren nämlich auch die logarithmischen Sortieralgos Merge- und Quicksort bekannt.
Alexander
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz