我需要帮忙编写一个循环,如果新添加的值比现有值低,则将数组元素向右移动,因此在输入新值时对数组进行排序。
数组最初为空。
我尝试了几个循环,但它们似乎都不适用于我的情况,因为它们是针对已经填满的数组使用的循环。
以下是我目前拥有的代码。
if(index < 0)
index = -(index + 1);
if(arr[index] > key)
for(int i = 0; i < count -1; i++) {
arr[index + i] = arr[index + i + 1];
}
arr[index] = key;
这个索引是从二分查找中得出的。
例如,如果我首先输入80,它将占据arr[0]
的位置。然后我输入45,它也将占据arr[0]
的位置。
由于45(关键字)比现有的arr[0](80)小,所以80要向上移动一个索引。