summaryrefslogtreecommitdiff
path: root/java/bin2hex.pl
diff options
context:
space:
mode:
Diffstat (limited to 'java/bin2hex.pl')
-rw-r--r--java/bin2hex.pl35
1 files changed, 35 insertions, 0 deletions
diff --git a/java/bin2hex.pl b/java/bin2hex.pl
new file mode 100644
index 0000000..f419c3e
--- /dev/null
+++ b/java/bin2hex.pl
@@ -0,0 +1,35 @@
+o = lo0; //Zeiger auf die Elemente unterhalb des partitionElement
+ int hi = hi0; //Zeiger auf die Elemente oberhalb des partitionElement
+ double pElem; //partitionElement. It divide the data array in two parts.
+ int noRecPar = 20; //Ist der zu sortierende Teilbereich kleiner als (hier:20) x Elemente, so ueberspringe
+ //die Rekursion. Am Ende aller (mit QuickSort) vorsortierten Elemente wird nun
+ //InsertSoert angewendet. Man koennte auch die einzelnen Teilbereiche mit InsertSort
+ //sortieren, jedoch ist die Anwendung auf das gesamte vorsortierte Array effektiver.
+
+ if ( (hi0 - lo0) >= noRecPar)
+ {
+
+ //nimmt einfach das mittlere Element als teilendes Element.
+ pElem = xy.x[ ( lo0 + hi0 ) / 2 ];
+
+ //wiederholt die Schleife bis sich die Zeiger schneiden.
+ while( lo <= hi )
+ {
+ //suche das erste Element, das groeSer oder gleich dem teilenden Element (partitionElement)
+ //ist, beginnend mit dem kleinsten Index (Zeiger).
+ while( ( lo < hi0 ) && ( xy.x[lo] < pElem )) ++lo;
+
+ //suche das erste Element, das kleiner oder gleich dem teilenden Element (partitionElement)
+ //ist, beginnend mit dem groeStem Index (Zeiger).
+ while( ( hi > lo0 ) && ( xy.x[hi] > pElem )) --hi;
+
+ // vertausche die gefundenen Werte, wenn die Zeiger noch nicht vertauscht sind.
+ if( lo <= hi )
+ {
+ xy.swap(lo, hi);
+ ++lo;
+ --hi;
+ }
+ }
+
+ //Wenn \ No newline at end of file