有一个升序排列的数组,
要求输入一个数后,数组仍然升序排列。试编程实现。
例如,原数组元素为:12 15 34 42 55 68 87 99,
插入元素50后,数组变为:12 15 34 42 50 55 68 87 99。
算法实现
void ascendArray(int array[], int n) {
int size=0,i;
while (array[size]&&size<max) { //计算现存数据数量
size++;
}
if (size==max) { //判断是否还能插入一个数
printf("数组满了!\n");
return;
} else
{
array[size]=n;
for (i=size; i>=0; i--) {
if (array[i]<n) { //n已经安排好
break;
}
array[i+1]=array[i]; //n从后往前移动插入
array[i]=n;
}
for (i=0; i<size+1; i++) { //打印输出
printf("%d\t",array[i]);
}
printf("\n");
}
printf("\n");
}