我试图弄清楚以下代码的运行时间,无论列表是ArrayList还是LinkedList。感谢您的任何建议!
Array: 我认为删除操作的时间复杂度是O(n),循环的时间复杂度是N/2,所以总时间复杂度是O(n^2)。
LinkedList: 只有引用会改变,所以删除操作的时间复杂度是常数级别,循环的时间复杂度是N/2,所以总时间复杂度是O(n)。
LinkedList: 只有引用会改变,所以删除操作的时间复杂度是常数级别,循环的时间复杂度是N/2,所以总时间复杂度是O(n)。
int halfSize = lst.size() / 2;
for (int i = 0; i < halfSize; i++){
lst.remove(0);
}