码迷,mamicode.com
首页 > 编程语言 > 详细

算法-快速排序

时间:2017-09-07 09:54:02      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:一个   value   ret   quicksort   rtk   class   ring   rtl   排序算法   

虽然现在很多语言对不同数据结构都封装好了排序方法,但是不同的应用场景中总会用到一些没有现成排序算法的数据结构,这时就要求程序员能够快速手写排序算法。

基于List<Map>实现的快速排序算法。

  现有一个List<Map>的引用 list,要求根据list.get(i).get("value")的值来进行排序,即根据Map的某一字段对List排序

  

private List<Map> QuickSort(List<Map> list, String sortKey, int left,int right)
{
    return quick_sort(list,sortKey,left,right);
}

private List<Map> quick_sort(List<Map> list, String sortKey, int left,int right)
{
    if(left < right)
    {
        Map key = list.get(left);
        int low = left;
        int high = right;
        while(low < high)
        {
            while(low < high && list.get(high).get(sortKey) >= key.get(sortKey))
            {
                high--;
            }
            list.set(low,list.get(high));
            while(low < high && list.get(low).get(sortKey) <= key.get(sortKey))
            {
                low++;
            }
            list.set(high,list.get(low));
        }
        list.set(low,key);
        List<Map> listSortLeft = quick_sort(list,sortKey,left,low-1);
        List<Map> listSortRight = quick_sort(listSortLeft ,sortKey,low+1,right);
        return listSortRight;
    }
    return list;
}

 

算法-快速排序

标签:一个   value   ret   quicksort   rtk   class   ring   rtl   排序算法   

原文地址:http://www.cnblogs.com/Theshy/p/7488006.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!