数组的插入排序
这里的 insert 函数作用是:输入一个数,插入到一个有序的数组中。
但是,却出现了死循环。不知应该怎样修改。另外,我在修改时经常出现覆盖的现象,怎样避免呢?以下是代码:
以下是程序代码:
void insert(float a[], int& n, float x){
for(int i = n - 1; i > 0; i--)
if(a[i] > x)
for(int j = (n - 1); j >= i; j--) a[j] = a[j - 1];
a[i] = x;
++n;
}
另外,我参考了答案,它很简短。我想用 for 语句来写,可是不成功。请指点。
void insert(float a[], int& n, float x){
int i = n;
while(i > 0 && a[i - 1] > x)
a[i--] = a[i - 1];
a[i] = x;
++n;
}