使用JAVA完成快速排序
刚一年的萌新,有什么不足还请dalao指出来。
下面的代码,直接复制粘贴运行main方法即可。
import java.util.*;
public class kuaisupaixu {
public static Map<String, Object> fen(List<Integer> list){
List<Integer> qianList = new ArrayList<>();
List<Integer> houList = new ArrayList<>();
List<Integer> linjieList = new ArrayList<>();
Integer linjie = list.get(0);
linjieList.add(linjie);
list.remove(0);
for (int i = 0; i < list.size(); i++) {
if(list.get(i) < linjie){
qianList.add(list.get(i));
}else{
houList.add(list.get(i));
}
}
Map<String, Object> map = new HashMap<>();
map.put("qian", qianList);
map.put("hou", houList);
map.put("linjie", linjieList);
return map;
}
public static void gao(List<Integer> list){
List<List<Integer>> zjList = new ArrayList<>();
zjList.add(list);
while(zjList.size() <= list.size()){
List<List<Integer>> gdList = new ArrayList<>();
for(int i = 0; i < zjList.size(); i++){
if(zjList.get(i).size() > 1){
Map<String, Object> map = fen(zjList.get(i));
List<Integer> qianList = (List<Integer>)map.get("qian");
List<Integer> houList = (List<Integer>)map.get("hou");
List<Integer> ljList = (List<Integer>)map.get("linjie");
if(qianList.size()>0){
gdList.add(qianList);
}
if(ljList.size()>0){
gdList.add(ljList);
}
if(houList.size()>0) {
gdList.add(houList);
}
}else{
gdList.add(zjList.get(i));
}
}
zjList.clear();
for (int i = 0; i < gdList.size(); i++){
zjList.add(gdList.get(i));
}
gdList.clear();
}
List<Integer> integerList = new ArrayList<>();
for(int i = 0; i < zjList.size(); i++){
for(int j = 0; j < zjList.get(i).size(); j++){
integerList.add(zjList.get(i).get(j));
}
}
System.out.println(integerList);
}
public static void main(String[] args){
List<Integer> list = new ArrayList<>(Arrays.asList(5,3,8,4,7,8,9,2,1,4,5,6,9,3,2,5,8));
gao(list);
}
}