排序都有哪几种方法?请列举。用 JAVA 实现一个快速排序

答:排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序);
快速排序的伪代码:

//使用快速排序方法对 a[ 0 :n- 1 ]排序 
从 a[ 0 :n- 1 ]中选择一个元素作为 middle,该元素为支点; 
把余下的元素分割为两段 left 和 right,使得 left 中的元素都小于等于支点,
而 right 中的元素都大于等于支点; 
递归地使用快速排序方法对 left 进行排序; 
递归地使用快速排序方法对 right 进行排序; 
所得结果为 left + middle + right。