📄 sort-mergesort.html
字号:
<html><head><title>Code Fragment</title></head><body text=#000000><center></center><br><br><dl><dd><pre> <font color=#ff0080>/** * Sorts the elements of list in in nondecreasing order according * to comparator c, using the merge-sort algorithm. **/</font> <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>static</font> <E> <font color=#8000a0><font color=#8000a0>void</font> </font><font color=#0000ff>mergeSort </font>(PositionList<E> in, Comparator<E> c) { <font color=#8000a0><font color=#8000a0>int</font> </font>n = in.<font color=#0000ff>size</font>(); <font color=#ff8000>if</font><font color=#0000ff> </font>(n < 2) <font color=#ff8000>return</font>; <font color=#ff0080>// the in list is already sorted in this case</font> <font color=#ff0080>// divide</font> PositionList<E> in1 = <font color=#8000a0><font color=#ff8000>new</font> </font>NodePositionList<E><font color=#0000ff></font>(); PositionList<E> in2 = <font color=#8000a0><font color=#ff8000>new</font> </font>NodePositionList<E><font color=#0000ff></font>(); <font color=#8000a0><font color=#8000a0>int</font> </font>i = 0; <font color=#ff8000>while</font><font color=#0000ff> </font>(i < n/2) { in1.<font color=#0000ff>addLast</font>(in.<font color=#0000ff>remove</font>(in.<font color=#0000ff>first</font>())); <font color=#ff0080>// move the first n/2 elements to in1</font> i++; } <font color=#ff8000>while</font><font color=#0000ff> </font>(!in.<font color=#0000ff>isEmpty</font>()) in2.<font color=#0000ff>addLast</font>(in.<font color=#0000ff>remove</font>(in.<font color=#0000ff>first</font>())); <font color=#ff0080>// move the rest to in2</font> <font color=#ff0080>// recur</font> <font color=#0000ff>mergeSort</font>(in1,c); <font color=#0000ff>mergeSort</font>(in2,c); <font color=#ff0080>//conquer</font> <font color=#0000ff>merge</font>(in1,in2,c,in); }</dl></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -