常见排序算法 - Java实现

1.冒泡排序

  每次比较相邻的两个元素大小,调整顺序。从头到尾执行一轮(i),最大数值的元素就排到最后。每次从头到尾执行一轮,都会排好一个元素(length - i - 1)。这就是说一个包含 n 个元素的数组,最大需要 n - 1 次就可以完成数组排序。代码如下:

 1 public static void bubbleSort(int[] array) {
 2     int length = array.length;
 3     for (int i = 0; i < length - 1; i++) {
 4         for (int j = 0; j < length - i - 1; j++) {
 5             if (array[j] > array[j + 1]) {
 6                 array[j] ^= array[j + 1];
 7                 array[j + 1] ^= array[j];
 8                 array[j] ^= array[j + 1];
 9             }
10         }
11         
12         System.out.print("排序次数 - " + (i+1) + "次:");
13         printArray(array);
14     }
15 }

  测试的方法要是选择极端情况(已经排好序,只不过是个相反的)。那么就结结实实执行 n-1 轮比较。但是往往不是每次都如此极端,排序时就会有几轮是空转的。这时可以使用一个开关对上边的冒泡排序进行优化。

2.快速排序

3.选择排序

4.插入排序

5.归并排序

猜你喜欢

转载自www.cnblogs.com/argor/p/9010546.html