(1)常用排序算法集锦

排序分为内部排序和外部排序,内部排序就是在内存中进行排序,外部排序是因为数据量太大,内存中不能完全容纳所有数据,所以需要访问外存。

目前常见的排序算法如下图:

Alt text

————————————————————华丽的分割线——————————————————————–

排序算法之内部排序:

  1. 插入排序——直接插入排序
  2. 插入排序——希尔排序
  3. 选择排序——简单选择排序
  4. 选择排序——堆排序
  5. 交换排序——冒泡排序
  6. 交换排序——快速排序
  7. 分配式排序——桶排序
  8. 分配式排序——基数排序
  9. 归并排序

排序算法之外部排序:

  1. K路归并排序
    ————————————————————华丽的分割线——————————————————————-

由于排序过程中经常需要输出,所以,首先写一个数组的工具类,进行一些数据的操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* 数组工具类
* @author lizhen
*/
public class ArrayUtil {
/**
* 用于打印数组arr中的元素
* @param arr
*/
public void printArray(int[] arr) {
System.out.print("{");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
if (i < arr.length - 1) {
System.out.print(",");
}
}
System.out.println("}");
}
}

我们还需要一个主程序类,用于各个排序方法的调用。

1
2
3
4
5
6
7
public class SortMain {
public static void main(String[] args) {
int[] listint = new int[] { 2, 1, 7, 10, 5, 4, 8, 2, 3 };
ArrayUtil arrayUtil = new ArrayUtil();
}
}