首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

直接插入排序小疑点

2012-04-08 
直接插入排序小问题刚开始学习java,做了个排序的练习可发现有这么一个问题,跪求解答。为什么把temp换成a[i]

直接插入排序小问题
刚开始学习java,做了个排序的练习可发现有这么一个问题,跪求解答。为什么把temp换成a[i]之后就不对了?代码如下
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]={4,3,2,5,1};
int temp=0;
int j=0;
for(int i=1;i<a.length;i++)
{
if(a[i]<a[i-1])
{ temp=a[i];

for( j=i-1;j>=0&&a[j]>temp;j--)//这里比较的是temp而不是a[i]区别是有可为什么呢?

{
a[j+1]=a[j];
}
a[j+1]=temp;
}
}
for(int i=0;i<a.length;i++)
{
System.out.println(a[i]);
}
}

[解决办法]
还是插入排序啊...你是怎么理解这个算法的呢,我的代码在下面:

Java code
public class Sorts {    public static void main(String[] args) {        // TODO Auto-generated method stub        int a[]={4,3,2,5,1};        int temp=0;        for(int i=0;i<a.length;i++){            for(int j=i;j>0&&(a[j]<a[j-1]);j--){                temp=a[j];                a[j]=a[j-1];                a[j-1]=temp;            }        }        for(int i:a){        System.out.print(i+" ");        }    }} 

热点排行