Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
369 views
in Technique[技术] by (71.8m points)

java中关于直接插入排序遇到的问题。

在研究直接插入排序的时候,写了个代码,如下:

static void zjcr1(int[] a)
    {
        int i,j,temp;
        //由于比较的时a[j]>a[j+1],所以i的循环条件是a.length-1
        for(i=1;i<a.length-1;i++)
        {    
            for(j=0;j<i+1;j++)
            {
                if(a[j]>a[j+1])
                {
                    temp = a[j+1];
                    a[j+1] = a[j];
                    a[j] = temp;
                }
            }
        }
    }

只看逻辑的话if(a[j]>a[j+1])这个地方是不可以完成排序的,但是,实际代码执行后,可以完成数组的排序,看了好久页没看明白,大家帮忙看一下。。。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

你用的测试用例不对,试试这个

new int[] {3,2,4,1,7,0,5}

结果:

[1, 2, 3, 0, 4, 5, 7]

建议还是用比较标准的排序方式


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

56.7k users

...