Java算法排序之--希尔排序法(二)

2014-11-24 11:36:20 · 作者: · 浏览: 13
llInsertSort(int[] data)
{
int[] temp=new int[data.length];//存储结果
for(int gap=data.length/2;gap>=1;gap-- )//gap间距
{
System.out.println("gap="+gap);
int iter=0;//对存储结果的数组进行遍历;
for(int i=0;i
{
boolean IsHead=true;//标明是否是每组的开头
int groupItemC=0;//用于标明每组所含有的元素
for(int j=i;j
if(IsHead) //判断是否是组的开始
{
groupItemC=0;
temp[iter]=data[j];
IsHead=false;
groupItemC++;
}
else
{
for(int groupiter=iter-groupItemC;groupiter
{
if(data[j]<=temp[groupiter])
{
for(int tempiter=iter;tempiter>groupiter;tempiter--)
{
temp[tempiter]=temp[tempiter-1];
}
temp[groupiter]=data[j];
break;//存完之后跳出循环开始存下一个元素
}
if(groupiter==iter-1&&data[j]>temp[groupiter])
{ www.2cto.com
temp[iter]=data[j];
}
}
groupItemC++;
}
}
data=temp;
for(int x:data)
{
System.out.print(x+" ");
}
System.out.println();
temp=new int[data.length];
}
return data;
}