选择排序
package xwq.sort;
import xwq.util.In;
import xwq.util.StdOut;
public class SelectSort {
public static void sort (int a[]) {
for (int i = 0 ; i < a.length - 1 ; i++) {
int pos = i;
for (int j = i + 1 ; j < a.length; j++) {
if (less(a[pos], a[j]) > 0 )
pos = j;
}
if (pos != i)
swap(a, pos, i);
}
}
private static int less (int v, int w) {
if (v < w)
return -1 ;
if (v > w)
return 1 ;
return 0 ;
}
private static void swap (int a[], int i, int j) {
int t = a[i];
a[i] = a[j];
a[j] = t;
}
public static void print (int a[]) {
for (int i = 0 ; i < a.length; i++)
StdOut.print(a[i] + " " );
StdOut.println();
}
public static void main (String[] args) {
int [] a = In.readInts(args[0 ]);
sort(a);
print(a);
}
}
插入排序
package xwq.sort;
import xwq.util.In;
import xwq.util.StdOut;
public class InsertSort {
public static void sort (int a[]) {
for (int i = 1 ; i < a.length; i++) {
int t = a[i];
int j = i - 1 ;
while (j >= 0 && t < a[j]) {
a[j + 1 ] = a[j];
j--;
}
a[j+1 ] = t;
}
}
public static void print (int a[]) {
for (int i = 0 ; i < a.length; i++)
StdOut.print(a[i] + " " );
StdOut.println();
}
public static void main (String[] args) {
int [] a = In.readInts(args[0 ]);
sort(a);
print(a);
}
}
冒泡排序
package xwq.sort;
import xwq.util.In;
import xwq.util.StdOut;
public class BubbleSort {
public static void sort (int a[]) {
for (int i = 0 ; i < a.length - 1 ; i++) {
for (int j = 0 ; j < a.length - i - 1 ; j++) {
if (less(a[j],a[j+1 ]) > 0 )
swap(a,j,j+1 );
}
}
}
private static int less (int v, int w) {
if (v < w)
return -1 ;
if (v > w)
return 1 ;
return 0 ;
}
private static void swap (int a[], int i, int j) {
int t = a[i];
a[i] = a[j];
a[j] = t;
}
public static void print (int a[]) {
for (int i = 0 ;i<a.length;i++)
StdOut.print(a[i]+" " );
StdOut.println();
}
public static void main (String[] args) {
int [] a = In.readInts(args[0 ]);
sort(a);
print(a);
}
}