public class ChaCha
{
static void bubble(int i,int j,int[] data)
{ int sum=(data[j]-j)-(data[i]-i);
if(j-i==0)
{
if(j+1<data.length)
{
int k =data[i+1]-data[i];
if(k!=1)
{
for (int p = 1;p<k ;p++ )
{
System.out.println(data[i]+p);
}//for
}//if
}//if
}//if
else if (j-i==1)
{
int k = data[j]-data[i];
if (k!=1)
{
for (int p = 1;p<k ;p++ )
{
System.out.println(data[i]+p);
}//for
}//if
if(j+1<data.length)
{
k = data[j+1]-data[j];
if(k!=1)
{
for (int p = 1;p<k ;p++ )
{
System.out.println(data[j]+p);
}
}
}
}//else if
else
{ //if((data[(i+j)/2]-(i+j)/2)-(data[i]-i)!=0)
bubble(i,(i+j)/2,data);
//if((data[((i+j)/2+1)-((i+j)/2)+1])-(data[j]-j)!=0)
bubble((i+j)/2+1,j,data);
}//else
}//bubble
public static void main(String[] args)
{
int[] a = {1,2,3,5,7,8,9,10,12,15,17,18,23,24,26,27,30} ;
bubble(0,a.length-1,a);
}
}
上面红色两行是用来减少查找次数的,但是由于能力有限,只能提出思想,希望高手指教
如果没有次序的只能先排序了哦,快速排序法应该最好,不过如果用堆排序可以在排序过程中
就把没有的元素找出来,