C 数组 Insertion/Deletion

C Array Insertion/Deletion

对于一个array,说明插入和删除是0(n):

与此相关的两个问题:

在数组中添加或删除元素意味着您需要将现有元素向上或向下移动以说明添加或删除的元素。

例如:

// assumes the array has capacity to add a member
void add_array(int *arr, int len, int index, int value)
{
    int i;
    for (i=len-1; i>index; i--) {
        arr[i+1] =  arr[i];
    }
    arry[index] = value;
}

void remove_array(int *arr, int len, int index)
{
    int i;
    for (i=index; i<len-1; i++) {
        arr[i] =  arr[i+1];
    }
}

这是 O(n),因为执行必要的移位平均需要 n 次迭代。