我的插入排序代码有问题

时间:2016-12-15 12:46:27

标签: c++ insertion-sort

我从mycodeschool学到了这个实现,这个方法对我来说似乎没问题,因为那是教师的教导方式,我做了同样的实现,但不知怎的,我的代码给出了一个问题,同样,请忽略时间函数,因为错误在别的地方。我删除它,错误仍然是相同的。

I8,A,001


Q0001,0
q831
rN
S2
D15
ZT
JF
O
R0,0
f100
N
A495,174,2,1,1,1,N,"1"
A494,107,2,1,1,3,N,"1"
A764,103,2,4,1,1,N,"Vehicle No : "
A766,176,2,4,1,1,N,"Container No : "
B780,379,2,1,7,21,160,N,"$Zendor"
X0,399,1,0,400
P1

1 个答案:

答案 0 :(得分:1)

我可以看到的一个错误是你在while循环的终止条件下错误地使用了i。您应该使用变量索引,我相信这也是您的初衷。

在我描述的修正之后,你的sort函数似乎可以工作,你可能会看到here,使用不同的main()。下面,您可以在校正后看到排序函数的定义。

void sort(int a[], int n) { //insertion sort function
    for (int i = 1; i < n; i++) {
        int value = a[i];
        int index = i;
        while (index > 0 && a[index - 1] > value) {
            a[index] = a[index - 1];
            index=index-1;
        }
        a[index] = value;
    }
}