快速排序

来源:互联网 发布:看网络电视用什么软件 编辑:程序博客网 时间:2024/06/10 06:07

List排序
private List<ISuite> sortSuites(List<ISuite> suites){    int start = 0;    int end = suites.size()-1;    suites = quickSortByList(suites,start,end);    return suites;}

public List<ISuite>  quickSortByList(List<ISuite> list , int start,int end) {    int lo = start;    int hi = end;    if (lo >= hi)        return list;    //确定指针方向的逻辑变量    boolean transfer=true;    while (lo != hi) {        if (getData(list, hi).getTime() < getData(list, lo).getTime()) {            //交换            ISuite temp = list.get(lo);            list.set(lo, list.get(hi));            list.set(hi, temp);            //决定下标移动,还是上标移动            transfer = (transfer == true) ? false : true;        }        //将指针向前或者向后移动        if(transfer)            hi--;        else            lo++;    }    //将数组分开两半,确定每个数字的正确位置    lo--;    hi++;    quickSortByList(list,start,lo);    quickSortByList(list,hi,end);    return list;}

原创粉丝点击