博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
根排序
阅读量:5771 次
发布时间:2019-06-18

本文共 1950 字,大约阅读时间需要 6 分钟。

hot3.png

package com.victor.sort.algorithms;import java.util.ArrayList;import com.victor.sort.seeds.FewUniqueKeys;import com.victor.sort.seeds.NearSorted;import com.victor.sort.seeds.Random;import com.victor.sort.seeds.Reversed;import com.victor.sort.seeds.Seeds;/** * 根排序 * @author 黑妹妹牙膏 * */public class Radix extends SortAlgorithms {	/**	 * (non-Javadoc)	 * @see com.victor.sort.algorithms.SortAlgorithms#_sort(java.util.ArrayList)	 	A: array d: The number of the highest digits	 	RADIX-SORT(A,d)	 		for i<- i to d	 			do use a stable sort to sort array A on digit i	 */		@SuppressWarnings("unchecked")	@Override	protected ArrayList
 doSort(ArrayList
 Alist) { ArrayList
 a = (ArrayList
)Alist.clone(); for(int i=(a.size()-1)/2;i>=0;i--) { a = sink(a,i,a.size()); } int max = a.get(0); int d = (max+"").length(); for(int i=1;i<=d;i++) { a = _Insertion(a,i); } return a; } protected ArrayList
 _Insertion(ArrayList
 Alist,int i) { ArrayList
 a = Alist; int n = a.size(); int k; for(int j=1;j
0 && getRadix(temp,i)
 sink(ArrayList
 a,int i,int n) { //get left child int lc = 2 * i + 1; if(lc >= n) return a; //get right child int rc = lc + 1; //get max of left and right child int mc = (rc >= n) ? lc : (a.get(lc) > a.get(rc) ? lc : rc); // if parent > max of child then return if(a.get(i) >= a.get(mc)) return a; //swap max and parent int temp = a.get(i); a.set(i, a.get(mc)); a.set(mc, temp); moveMentIncrease(); return sink(a,mc,n); } @Override public String getName() { return "Radix"; } public static void main(String[] args) { Seeds seed1 = new Random(); Seeds seed2 = new NearSorted(); Seeds seed3 = new Reversed(); Seeds seed4 = new FewUniqueKeys(); SortAlgorithms SA = new Radix(); SA.sort(seed1,10000);// SA.print(); SA.sort(seed2,10000); SA.sort(seed3,10000); SA.sort(seed4,10000); }}

转载于:https://my.oschina.net/readjava/blog/304444

你可能感兴趣的文章
卡特兰数
查看>>
006_mac osx 应用跨屏幕
查看>>
nginx中配置文件的讲解
查看>>
MindNode使用
查看>>
SQL Server 2016 Alwayson新增功能
查看>>
HTTP库Axios
查看>>
CentOS7下安装python-pip
查看>>
认知计算 Cognitive Computing
查看>>
左手坐标系和右手坐标系 ZZ
查看>>
陀螺仪主要性能指标
查看>>
Java 架构师眼中的 HTTP 协议
查看>>
Linux 目录结构和常用命令
查看>>
Linux内存管理之mmap详解 (可用于android底层内存调试)
查看>>
利润表(年末)未分配利润公式备份
查看>>
Android开发中ViewStub的应用方法
查看>>
gen already exists but is not a source folder. Convert to a source folder or rename it 的解决办法...
查看>>
HDOJ-2069Coin Change(母函数加强)
查看>>
遍历Map的四种方法
查看>>
Altium Designer 小记
查看>>
【Linux高级驱动】I2C驱动框架分析
查看>>