希爾排序_Java

經典希爾排序

函數:

static void prshl(int[] p,int n)
	{
		int k,j,i;
		int t;
		k=n/2;
		while(k>0)
		{
			for(j=k;j<=n-1;j++)
			{
				t=p[j];i=j-k;
				while((i>=0)&&(p[i]>t))
				{
					p[i+k]=p[i];i=i-k;
				}
				p[i+k]=t;
			}
			k=k/2;
		}

這裏調用:

import javax.swing.JOptionPane;

public static void main(String args[])
	{
		int n=Integer.parseInt(JOptionPane.showInputDialog("Please enter the number of elements to sort:"));
		int[] p=new int[n];
		for(int i=0;i<n;i++)
			p[i]=(int)(Math.random()*100+1);
		for(int i=0;i<n;i++)
			System.out.print(p[i]+" ");
		prshl(p,n);
		System.out.println();
		for(int i=0;i<n;i++)
			System.out.print(p[i]+" ");
		System.out.println();
	}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章