标签:一个 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