SortUtil: GCf._8;%
;']vY
package org.rut.util.algorithm; O0K@M
|% M{kA-
import org.rut.util.algorithm.support.BubbleSort; U6/m_`nc
import org.rut.util.algorithm.support.HeapSort; O4 +SD
import org.rut.util.algorithm.support.ImprovedMergeSort; pl
jV|.?
import org.rut.util.algorithm.support.ImprovedQuickSort; y9V;IXhDc
import org.rut.util.algorithm.support.InsertSort; @&~OB/7B:
import org.rut.util.algorithm.support.MergeSort; 5~`|)~FA
import org.rut.util.algorithm.support.QuickSort; G/LXUhuif
import org.rut.util.algorithm.support.SelectionSort; *@-q@5r}!
import org.rut.util.algorithm.support.ShellSort; |x _-I#H
9 NGeh*`
/** beN>5coP%A
* @author treeroot OH-~
* @since 2006-2-2 <2o.,2?G
* @version 1.0 L]/\C{}k
*/ !#@4xeBPo
public class SortUtil { zVc7q7E
public final static int INSERT = 1; W(u6J#2
public final static int BUBBLE = 2; `&|l;zsS
public final static int SELECTION = 3; 'gk81@|
public final static int SHELL = 4; 4y]: Gqz~
public final static int QUICK = 5; v$.JmL0^J
public final static int IMPROVED_QUICK = 6; '?vgp
public final static int MERGE = 7; j{7ilo(i
public final static int IMPROVED_MERGE = 8; Qq;m"M /
public final static int HEAP = 9; *uI hxMX
q/rHHuY}
public static void sort(int[] data) { <6}f2^
sort(data, IMPROVED_QUICK); v)C:E 9!|
} aowPji$H
private static String[] name={ S2At$47v
"insert", "bubble", "selection", "shell", "quick", "improved_quick", "merge", "improved_merge", "heap" f}9PEpa,Z
}; lt2Nwt0bv
+AgkPMy
private static Sort[] impl=new Sort[]{ <u x*r#a!d
new InsertSort(), 2d>d(^
new BubbleSort(), xnhDW7m
new SelectionSort(), "dLMBY~
new ShellSort(), P$(iB.&
new QuickSort(), :ET3&J
L
new ImprovedQuickSort(), Il&"=LooZ
new MergeSort(), >DL-Q\U
new ImprovedMergeSort(), (Q h7bfd
new HeapSort() 7n\j"0z
}; X#Dhk6
hD6ur=G8u
public static String toString(int algorithm){ o7@4=m}
return name[algorithm-1]; [:R P9r}
} [!dnm1
>QZt)<[
public static void sort(int[] data, int algorithm) { y_7XYT!w
impl[algorithm-1].sort(data); d4/`:?w
} \@PUljU]
}eDX8b8emA
public static interface Sort { Y;> p)'z
public void sort(int[] data); 4|@FO}rK[l
} RZ/+K=
"13
:VTs[5
public static void swap(int[] data, int i, int j) { '+q' H
int temp = data; kq1M<lk
data = data[j]; ZoNNM4M+
data[j] = temp; A^r
[_dyZ
} XvzV
lKL
}