diff options
author | David Vorgrimmler <vorgrimmlerdavid@gmx.de> | 2012-04-18 16:13:37 +0200 |
---|---|---|
committer | David Vorgrimmler <vorgrimmlerdavid@gmx.de> | 2012-04-18 16:13:37 +0200 |
commit | 14a217967170df6655d150e2b2cba70dc88a44f2 (patch) | |
tree | cfd00d4adc2bd1ecd0837e97877d34523f80345b /java/bin2hex.pl | |
parent | 050fd7093fc8eb1a09afc67f381a411d9c124ca3 (diff) | |
parent | 8f747e0e917fb85395d7e355173ba96d72b8cafa (diff) |
Merge branch 'pc_unified_from_jl' into development
Diffstat (limited to 'java/bin2hex.pl')
-rw-r--r-- | java/bin2hex.pl | 35 |
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 |