1 import java.util.Arrays;
2
3 /**
4 * 各种排序算法从小到大进行排序
5 */
6 public class Test {
7
8 public static void main(String args[]) {
9 int[] n = { 5, 2, 3, 4, 1 };
10 int[] n1, n2, n3;
11 n1 = n2 = n3 = Arrays.copyOf(n, n.length);
12
13 System.out.println("原来的数组:");
14 printArray(n);
15
16 selectionSort(n1);
17 System.out.println("\n选择排序后:");
18 printArray(n1);
19
20 bubbleSort(n2);
21 System.out.println("\n冒泡排序后:");
22 printArray(n2);
23
24 insertionSort(n3);
25 System.out.println("\n插入排序后:");
26 printArray(n3);
27 }
28
29 /** 选择排序:首先确定的是最小元素 */
30 private static void selectionSort(int number[]) {
31 for (int i = 0; i < number.length - 1; i++) {
32 // 对当前无序区间score[i......length-1]进行排序
33 for (int j = i + 1; j < number.length; j++) {
34 if (number[i] > number[j]) {
35 int temp = number[i];
36 number[i] = number[j];
37 number[j] = temp;
38 }
39 }
40
41 }
42 }
43
44 /** 冒泡排序:最先确定的是最大的元素 */
45 private static void bubbleSort(int number[]) {
46 for (int i = 0; i < number.length - 1; i++) {
47 // 对当前无序区间score[0......length-i-1]进行排序
48 for (int j = 0; j < number.length - i - 1; j++) {
49 if (number[j] > number[j + 1]) {
50 int temp = number[j];
51 number[j] = number[j + 1];
52 number[j + 1] = temp;
53 }
54 }
55 }
56 }
57
58 /** 插入排序:不断将元素插入到已经排好序的数据(注意插入的顺序) */
59 private static void insertionSort(int[] list) {
60 for (int i = 1; i < list.length; i++) {
61 int currentElement = list[i];
62 // 把list[i]插入到list[0]~list[i-1]之间,这样list[0]~list[i]就排好序了
63 int j;
64 for (j = i - 1; j >= 0 && list[j] > currentElement; j--) {
65 list[j + 1] = list[j];
66 }
67 // 把当前元素插入到list[j+1]
68 list[j + 1] = currentElement;
69 }
70 }
71
72 /** 打印数组中的元素 */
73 private static void printArray(int number[]) {
74 for (int i : number) {
75 System.out.print(i + "\t");
76 }
77 }
78 }
运行结果:

来源:http://www.cnblogs.com/happyfans/p/4343515.html