这是qSort的基础,qSort在这个的基础上面做了很大的改进(非常精炼和高度优化的内部循环)
package cn.jxau.dataStructure;
import java.util.ArrayList;
import java.util.List;
public class SimpleRecursionSort {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(43);
list.add(34);
list.add(54);
list.add(656);
list.add(67);
list.add(67);
list.add(43);
list.add(8);
list.add(3);
list.add(438);
list.add(40);
list.add(23);
list.add(12);
list.add(54);
list.add(56);
list.add(43);
sort(list);
for (Integer integer : list) {
System.out.print(integer+" ");
}
}
public static void sort(List<Integer> items){
if (items.size() > 1) {
List<Integer> smaller = new ArrayList<Integer>();
List<Integer> same = new ArrayList<Integer>();
List<Integer> larger = new ArrayList<Integer>();
Integer chosenItem = items.get(items.size()/2);
for (Integer i : items) {
if (i < chosenItem)
smaller.add(i);
else if (i > chosenItem)
larger.add(i);
else
same.add(i);
}
sort(smaller);
sort(larger);
items.clear();
items.addAll(smaller);
items.addAll(same);
items.addAll(larger);
}
}
}