时间 :2018年11月8号
作者:我想做个体面人
快速排序
package cn.itlaobing.date1108;
import java.util.ArrayList;
import java.util.List;
public class Fish {
public static void main(String[] args) {
List<Integer> lists = new ArrayList<>();
//调用集合的add方法往集合中添加元素
lists.add(5);
lists.add(10);
lists.add(9);
lists.add(7);
//调用sort方法对集合进行排序
sort(lists);
//迭代lists集合输出排序之后的元素
for(Integer i:lists) {
System.out.print(i+"\t");
}
}
/**
*创建一个公有的静态的无返回值的sort() 方法
*以便于在main函数中调用
**/
public static void sort(List<Integer> lists) {
if(lists.size()>1) {
//定义三个存储中间变量,最小值,最大值
List<Integer> smaller = new ArrayList<>();
List<Integer> same = new ArrayList<>();
List<Integer> lagger = new ArrayList<>();
Integer choseItem = lists.get(lists.size()/2);
//通过foeach语句来迭代lists集合
for(Integer i:lists) {
//比较中间变量与迭代到的元素大小,分别将其添加到不同的集合中
if(choseItem>i) {
smaller.add(i);
}else if (choseItem<i) {
lagger.add(i);
}else {
same.add(i);
}
}
//采用递归的方式对元素进行排序
sort(smaller);
sort(lagger);
//排序所有元素之后,将lists集合清空
lists.clear();
//将排序之后的元素添加到lists集合之中
lists.addAll(smaller);
lists.addAll(same);
lists.addAll(lagger);
}
}
}