插入排序比较计数

时间:2018-03-26 16:01:11

标签: java sorting count

我以前见过这样的话题,但几乎没有任何帮助。 我有这样的方法:

comparecount=0;
for(int i = 1; i < tab.length; i++) {
        comparecount++;

        for(int j = i; j > 0; j--) {
            //comparecount++;
            if(tab[j]<tab[j-1]) {
                comparecount++;
                swap(tab,j,j-1);
                adjustcount+=3;
            }
        }

    }

对于输入8 5 6 1 7 2,这应该产生13次比较,但我的确是15次。为了完全公开这是我作业的一部分,算法按照要求打印跟踪,所以我很难找到我在哪里获得额外的2次比较

1 个答案:

答案 0 :(得分:0)

对于任何想知道我是如何解决这个问题的人。

以上算法比较了所有内容,因此计算1 5 6 8 | 7 2 --> 1 5 6 7 8 | 2比较7比较比较8比7比6比例,它插入它,然后继续比较6比5等我怎么达到13停止计数一旦插入7。