1、插入排序
void doInsertSort(int[] src)
{
int len=src.length;
for(int i=1;i<len;i++)
{
int j;
int temp=src[i];
for(j=i;j>0;j--)
{
if(src[j-1]>temp)
{
src[j]=src[j-1];
}
else //如果当前的数,不小前面的数,那就说明不小于前面所有的数
{
//因为前面已经是排好了序的,所以直接通出当前一轮的比较
break;
}
}
src[j]=temp;
printResult(i,src);
}
}
2、选择排序
void doChooseSort(int[] src)
{
int len=src.length;
int temp;
for(int i=0;i<len;i++)
{
temp=src[i];
int j;
int samllestLocation=i;//最小数的下标
for(j=i+1;j<len;j++)
{
if(src[j]<temp)
{
temp=src[j];//取出最小值
samllestLocation=j;//取出最小值所在下标
}
}
src[samllestLocation]=src[i];
src[i]=temp;
printResult(i,src);
}
}
3、冒泡排序
void doBubbleSort(int[] src)
{
int len=src.length;
for(int i=0;i<len;i++)
{
for(int j=i+1;j<len;j++)
{
int temp;
if(src[i]>src[j])
{
temp=src[j];
src[j]=src[i];
src[i]=temp;
}
}
printResult(i,src);
}
}
浙公网安备 33010602011771号