算法-快速排序

Posted The_shy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法-快速排序相关的知识,希望对你有一定的参考价值。

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

基于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;
}

 

以上是关于算法-快速排序的主要内容,如果未能解决你的问题,请参考以下文章

一行Python代码搞定快速排序算法

排序算法 | 快速排序(含C++/Python代码实现)

交换排序(冒泡排序快速排序的算法思想及代码实现)

快速排序/快速选择算法

快速排序算法详解及代码实现

排序算法——快速排序的图解代码实现以及时间复杂度分析