sort-quicksortstep.html
来自「经典的数据结构源代码(java 实现)」· HTML 代码 · 共 38 行
HTML
38 行
<html><head><title>Code Fragment</title></head><body text=#000000><center></center><br><br><dl><dd><pre> <font color=#8000a0><font color=#8000a0>private</font> </font><font color=#8000a0>static</font> <E> <font color=#8000a0><font color=#8000a0>void</font> </font><font color=#0000ff>quickSortStep </font>(E[] s, Comparator<E> c, <font color=#8000a0><font color=#8000a0>int</font> </font>leftBound, <font color=#8000a0><font color=#8000a0>int</font> </font>rightBound ) { <font color=#ff8000>if</font><font color=#0000ff> </font>(leftBound >= rightBound) <font color=#ff8000>return</font>; <font color=#ff0080>// the indices have crossed</font> <font color=#8000a0>E </font>temp; <font color=#ff0080>// temp object used for swapping</font> <font color=#8000a0>E </font>pivot = s[rightBound]; <font color=#8000a0><font color=#8000a0>int</font> </font>leftIndex = leftBound; <font color=#ff0080>// will scan rightward</font> <font color=#8000a0><font color=#8000a0>int</font> </font>rightIndex = rightBound-1; <font color=#ff0080>// will scan leftward</font> <font color=#ff8000>while</font><font color=#0000ff> </font>(leftIndex <= rightIndex) { <font color=#ff0080>// scan right until larger than the pivot</font> <font color=#ff8000>while</font><font color=#0000ff> </font>(<font color=#0000ff> </font>(leftIndex <= rightIndex) &&<font color=#0000ff> </font>(c.<font color=#0000ff>compare</font>(s[leftIndex], pivot)<=0) ) leftIndex++; <font color=#ff0080>// scan leftward to find an element smaller than the pivot</font> <font color=#ff8000>while</font><font color=#0000ff> </font>(<font color=#0000ff> </font>(rightIndex >= leftIndex) &&<font color=#0000ff> </font>(c.<font color=#0000ff>compare</font>(s[rightIndex], pivot)>=0)) rightIndex--; <font color=#ff8000>if</font><font color=#0000ff> </font>(leftIndex < rightIndex) { <font color=#ff0080>// both elements were found</font> temp = s[rightIndex]; s[rightIndex] = s[leftIndex]; <font color=#ff0080>// swap these elements</font> s[leftIndex] = temp; } } <font color=#ff0080>// the loop continues until the indices cross</font> temp = s[rightBound]; <font color=#ff0080>// swap pivot with the element at leftIndex</font> s[rightBound] = s[leftIndex]; s[leftIndex] = temp; <font color=#ff0080>// the pivot is now at leftIndex, so recurse</font> <font color=#0000ff>quickSortStep</font>(s, c, leftBound, leftIndex-1); <font color=#0000ff>quickSortStep</font>(s, c, leftIndex+1, rightBound); }</dl></body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?