⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chsort.java

📁 java实现的支持向量机分类
💻 JAVA
字号:

public class CHsort {
	
	public void CHSortFormStack(double[] DataSource,long[] IndexPointer,int Length)
	{
		if(Length<2)
		{
			return;
		}
		int i,j,l;
		long rra;
		l=(Length>>1)+1;
		for(;;)
		{
			if(l>1)
			{
				rra=IndexPointer[--l-1];
			}
			else
			{
				break;
			}
			i=l;
			j=l+l;
			while(j<=Length)
			{
				if(j<Length&& Math.abs(DataSource[(int)IndexPointer[j-1]])<Math.abs(DataSource[(int)IndexPointer[j]])) ++j;
				if(Math.abs(DataSource[(int)rra])< Math.abs(DataSource[(int)IndexPointer[j-1]]))
				{
					IndexPointer[i-1]=IndexPointer[j-1];
					i=j;
					j<<=1;
				}
				else
					break;
			}
			IndexPointer[i-1]=rra;
		}
	}

////////	StackSort New Comer to Stack
	public void CHSortNewComer(double[] DataSource,long[] IndexPointer,int OriginalLength)
	{
		int i,j,l;
		long rra;
		++OriginalLength;
		l=(OriginalLength);
		for(;;)
		{
			if(l>1)
			{
				l>>=1;
				rra=IndexPointer[l-1];
			}
			else
			{
				break;
			}
			i=l;
			j=l+l;
			while(j<=OriginalLength)
			{
				if(j<OriginalLength  && Math.abs(DataSource[(int)IndexPointer[j-1]])<Math.abs(DataSource[(int)IndexPointer[j]])) ++j;
				if(Math.abs(DataSource[(int)rra])< Math.abs(DataSource[(int)IndexPointer[j-1]]))
				{
					IndexPointer[i-1]=IndexPointer[j-1];
					i=j;
					j<<=1;
				}
				else
					break;
			}
			IndexPointer[i-1]=rra;
		}
	}
//////	StackSort Top Retire
	public void CHSortTopRetire(double[] DataSource,long[] IndexPointer,int Length)
	{
		if(Length<2)
		{
			return;
		}
		int i,ir,j,l;
		long rra;
		l=1;
		ir=Length;

		rra=IndexPointer[ir-1];
		IndexPointer[ir-1]=IndexPointer[0];
		if(--ir==1)
		{
			IndexPointer[0]=rra;
			return;
		}
		i=l;
		j=l+l;
		while(j<=ir)
		{
			if(j<ir&& Math.abs(DataSource[(int)IndexPointer[j-1]])<Math.abs(DataSource[(int)IndexPointer[j]])) ++j;
			if(Math.abs(DataSource[(int)rra])<Math.abs(DataSource[(int)IndexPointer[j-1]]))
			{
				IndexPointer[i-1]=IndexPointer[j-1];
				i=j;
				j<<=1;
			}
			else
				break;
		}
		IndexPointer[i-1]=rra;

	}


public 	void CHSortUpdateTop(double[] DataSource,long[] IndexPointer,int Length)
	{
		if(Length<2)
		{
			return;
		}
		int i,ir,j,l;
		long rra;
		l=1;
		ir=Length;

		rra=IndexPointer[0];
		if(ir==1)
		{
			return;
		}
		i=l;
		j=l+l;
		while(j<=ir)
		{
			if(j<ir&& Math.abs(DataSource[(int)IndexPointer[j-1]])<Math.abs(DataSource[(int)IndexPointer[j]])) ++j;
			if(Math.abs(DataSource[(int)rra])<Math.abs(DataSource[(int)IndexPointer[j-1]]))
			{
				IndexPointer[i-1]=IndexPointer[j-1];
				i=j;
				j<<=1;
			}
			else
				break;
		}
		IndexPointer[i-1]=rra;
	}



	
	
	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -