Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Algorithmen & Lehrreiches

Algorithmen & Lehrreiches Algorithmen & Lehrreiches...

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag [Windows XP-32 bit] Ihr Konto wird gesperrt...
Aufrufe: 25, Antworten: 5
Gehe zum ersten neuen Beitrag Benutzerrechte für "Gast"...
Aufrufe: 305, Antworten: 11
Gehe zum ersten neuen Beitrag [Windows XP-32 bit] CPU Auslastung ständig 100...
Aufrufe: 246, Antworten: 18
Gehe zum ersten neuen Beitrag Suche Programm um Werbung zu...
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag Serienempfehlung gewünscht :)
Aufrufe: 1935, Antworten: 27
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26436, Antworten: 4179
Gehe zum ersten neuen Beitrag [Verkaufe] HTC Desire "S"
Aufrufe: 21, Antworten: 0
Gehe zum ersten neuen Beitrag Probleme mit Internet...
Aufrufe: 301, Antworten: 11
Gehe zum ersten neuen Beitrag Schnäppchen Thread ... von...
Aufrufe: 7363, Antworten: 36
Gehe zum ersten neuen Beitrag Vier Jahre Haft für...
Aufrufe: 35, Antworten: 0
Zeige:





Thema geschlossen
 
LinkBack Themen-Optionen Ansicht
Alt 12.06.2011, 17:31   #1 (Direktlink)
Dauergast
 
Benutzerbild von p. specht
 
Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.078
Standard

Zeit für ein wenig Nostalgie
Code:
WindowTitle "NONREKURSIVES QUICKSORT"
' Getestet, aber ohne Gewähr - P. Specht für Paules PC Forum
Declare NumMax&,A&[],Stack1&[],Stack2&[],StackPtr&,HeadPtr&,TailPtr&
declare Pivot&,a&,b&,t&,q&,r&,p&,s&
declare i&,ms1&,sec!

Jump0:
Cls

Print "Wieviele Random Numbers?:"; : Input NumMax&
Randomize:i&=0:While i&<NumMax&:A&[i&]=Rnd(100000)
    Locate 2,2:print i&,A&[i&]  ''''
Inc i&:EndWhile

ms1& = &GetTickCount  ''''

StackPtr&=0
HeadPtr&=0
TailPtr&=NumMax&-1

Print "Starte Nonrekursives Quicksort...";  ''''

Jump2:

While HeadPtr& < TailPtr&
	Pivot& = A&[(HeadPtr& + TailPtr&)/2]
	a& = HeadPtr&
	b& = TailPtr&
	
Jump1:
  
	While A&[a&] < Pivot& : inc a& : EndWhile
	While A&[b&] > Pivot& : dec b& : EndWhile

  If a& < b& 
		t&=A&[a&]
		A&[a&]=A&[b&]
		A&[b&]=t&
		inc a&
		dec b&
    Goto "Jump1"
	EndIf
	
	If a&=b&
		q& = b& - 1
		r& = a& + 1
	Else
		q& = b&
		r& = a&		
	EndIf
	
	inc StackPtr&
	p& = HeadPtr&
	s& = TailPtr&
	
	If (q&-p&) < (s&-r&)
		Stack1&[StackPtr&] = r&
		Stack2&[StackPtr&] = s&
		HeadPtr& = p&
		TailPtr& = q&		
	Else
		Stack1&[StackPtr&] = p&
		Stack2&[StackPtr&] = q&
		HeadPtr& = r&
		TailPtr& = s&
	EndIf
	
EndWhile

If StackPtr& > 0
	HeadPtr& = Stack1&[StackPtr&]
	TailPtr& = Stack2&[StackPtr&]
	dec StackPtr&
	Goto "Jump2"
EndIf


' Sortierung fertig
sec!=(&GetTickCount - ms1&)/1000

print:Print "Kontrollausgabe (jedes " + str$(int(NumMax&/30+1))+". Element):"  ''''
WhileLoop 0,NumMax&-1,int(1+NumMax&/30):Print A&[&Loop];:EndWhile : print      ''''

print : print "Dauer des reinen Sortiervorgangs der "+str$(NumMax&)+" Zufallsvariablen: "+str$(sec!)+" Sek."
print : print "Weiterer Test mit beliebiger Taste..."
WaitInput
Goto "Jump0"
Für das Sortieren von 500.000 8-Byte-Zufallsintegers in XProfan11.2a brauchte mein 2.5 GHz Rechner (Profan rechnet dabei nur auf einem Kern) mit diesem Algorithmus 186,61 bzw. 185,41 Sekunden. Nostalgie halt... Für solche Arraygrößen bitte die Zeile mit Locate 2,2 auskommentieren, sonst kann man sich während der Zufallsgenerierung einen Kaffee machen gehen.

Gruss

P.S.: ... und Alles Gute den Vätern!
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3
p. specht ist offline  
Werbung

Windows 7 Tipps und Tricks in Bildern

Thema geschlossen

  Paules-PC-Forum.de > Programmierung > XProfan > Algorithmen & Lehrreiches

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hat wer den Quellcode von Quicksort mit Buchstaben !? Konsol C/C++, Visual C++, Visual C++.NET 5 28.04.2005 20:59



Alle Zeitangaben in WEZ +2. Es ist jetzt 16:11 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2