算法-快速排序
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; }
以上是关于算法-快速排序的主要内容,如果未能解决你的问题,请参考以下文章