genericsort-sort.html

来自「经典的数据结构源代码(java 实现)」· HTML 代码 · 共 31 行

HTML
31
字号
<html><head><title>Code Fragment</title></head><body text=#000000><center></center><br><br><dl><dd><pre>  <font color = #ff0080>/** Insertion-sort for a doubly linked list of class DList.  */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>static</font> <font color=#8000a0><font color=#8000a0>void</font> </font><font color=#0000ff>sort</font>(DList L) {    <font color=#ff8000>if</font><font color=#0000ff> </font>(L.<font color=#0000ff>size</font>() &lt;= 1) <font color=#ff8000>return</font>; <font color=#ff0080>// L is already sorted in this case</font>    <font color=#8000a0>DNode </font>pivot;	<font color=#ff0080>// pivot node </font>    <font color=#8000a0>DNode </font>ins;		<font color=#ff0080>// insertion point </font>    <font color=#8000a0>DNode </font>end = L.<font color=#0000ff>getFirst</font>();	<font color=#ff0080>// end of run</font>    <font color=#ff8000>while</font><font color=#0000ff> </font>(end != L.<font color=#0000ff>getLast</font>()) {      pivot = end.<font color=#0000ff>getNext</font>();	<font color=#ff0080>// get the next pivot node</font>      L.<font color=#0000ff>remove</font>(pivot);		<font color=#ff0080>// remove it</font>      ins = end;		<font color=#ff0080>// start searching from the end of the sorted run</font>      <font color=#ff8000>while</font><font color=#0000ff> </font>(L.<font color=#0000ff>hasPrev</font>(ins) &&	     ins.<font color=#0000ff>getElement</font>().<font color=#0000ff>compareTo</font>(pivot.<font color=#0000ff>getElement</font>()) &gt; 0)	ins = ins.<font color=#0000ff>getPrev</font>();	<font color=#ff0080>// move left</font>      L.<font color=#0000ff>addAfter</font>(ins,pivot);	<font color=#ff0080>// add the pivot back, after insertion point</font>      <font color=#ff8000>if</font><font color=#0000ff> </font>(ins == end)		<font color=#ff0080>// we just added pivot after end in this case</font>	end = end.<font color=#0000ff>getNext</font>();	<font color=#ff0080>// so increment the end marker</font>    }  }</dl></body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?