Bird
Raised Fist0
DSA Javascriptprogramming~5 mins

Array Deletion at Middle Index in DSA Javascript - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Array Deletion at Middle Index
O(n)
Understanding Time Complexity

When we delete an element from the middle of an array, the computer must adjust the rest of the elements. This adjustment takes time.

We want to know how the time needed grows as the array gets bigger.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


const arr = [1, 2, 3, 4, 5];
const middleIndex = Math.floor(arr.length / 2);
arr.splice(middleIndex, 1);
console.log(arr);
    

This code removes the middle element from the array and shifts the remaining elements left.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Shifting elements after the deleted index to the left by one position.
  • How many times: Number of elements after the middle index, which grows as the array size grows.
How Execution Grows With Input

When the array size increases, the number of elements to shift also increases roughly in proportion.

Input Size (n)Approx. Operations (shifts)
10About 5 shifts
100About 50 shifts
1000About 500 shifts

Pattern observation: The number of shifts grows roughly half as fast as the array size, so it grows linearly.

Final Time Complexity

Time Complexity: O(n)

This means the time to delete from the middle grows in direct proportion to the array size.

Common Mistake

[X] Wrong: "Deleting an element from an array is always fast and takes the same time no matter the position."

[OK] Correct: When deleting from the middle, elements after it must move, so it takes more time as the array grows.

Interview Connect

Understanding how array operations scale helps you choose the right data structure and explain your choices clearly in interviews.

Self-Check

What if we deleted the last element instead of the middle? How would the time complexity change?

Practice

(1/5)
1. What happens when you delete the middle element from an array with an odd number of elements using array.splice(mid, 1) where mid is the middle index?
easy
A. The first element is removed instead.
B. The array remains unchanged.
C. All elements after the middle are removed.
D. The middle element is removed and the array size decreases by one.

Solution

  1. Step 1: Understand splice method behavior

    The splice method removes elements starting at the given index. Here, it removes 1 element at the middle index.
  2. Step 2: Effect on array size

    Removing one element reduces the array length by one, and elements after the removed one shift left.
  3. Final Answer:

    The middle element is removed and the array size decreases by one. -> Option D
  4. Quick Check:

    splice(mid, 1) removes middle element [OK]
Hint: Use splice(mid, 1) to remove middle element quickly [OK]
Common Mistakes:
  • Thinking splice does not change array size
  • Confusing splice with slice
  • Removing wrong index
2. Which of the following is the correct syntax to remove the middle element from an array arr in JavaScript?
easy
A. arr.delete(Math.floor(arr.length / 2));
B. arr.splice(Math.floor(arr.length / 2), 1);
C. arr.remove(Math.floor(arr.length / 2));
D. arr.pop(Math.floor(arr.length / 2));

Solution

  1. Step 1: Identify correct method to remove element by index

    JavaScript arrays use splice to remove elements at a specific index.
  2. Step 2: Calculate middle index correctly

    Math.floor(arr.length / 2) gives the middle index for odd or even length arrays.
  3. Final Answer:

    arr.splice(Math.floor(arr.length / 2), 1); -> Option B
  4. Quick Check:

    splice + floor middle index = correct syntax [OK]
Hint: Use splice with floor of length/2 for middle deletion [OK]
Common Mistakes:
  • Using non-existent methods like delete or remove
  • Using pop with index argument
  • Not flooring the middle index
3. What is the output of the following code?
let arr = [10, 20, 30, 40, 50];
let mid = Math.floor(arr.length / 2);
arr.splice(mid, 1);
console.log(arr);
medium
A. [10, 20, 40, 50]
B. [10, 20, 30, 40]
C. [10, 20, 30, 50]
D. [20, 30, 40, 50]

Solution

  1. Step 1: Calculate middle index

    Array length is 5, so middle index = floor(5/2) = 2.
  2. Step 2: Remove element at index 2

    Element at index 2 is 30, so splice removes 30.
  3. Step 3: Resulting array

    Array becomes [10, 20, 40, 50] after removal.
  4. Final Answer:

    [10, 20, 40, 50] -> Option A
  5. Quick Check:

    Removed element 30 at index 2 [OK]
Hint: Find middle index, splice removes that element [OK]
Common Mistakes:
  • Removing wrong index element
  • Not flooring middle index
  • Confusing splice with slice
4. Find the error in the code below that tries to remove the middle element from an array:
let arr = [1, 2, 3, 4, 5];
let mid = arr.length / 2;
arr.splice(mid, 1);
console.log(arr);
medium
A. splice cannot remove elements from arrays.
B. arr.length / 2 gives the last index, not middle.
C. mid should be floored to an integer before using in splice.
D. splice requires two arguments, but only one is given.

Solution

  1. Step 1: Check middle index calculation

    mid is calculated as arr.length / 2 = 2.5, which is a float, not an integer index.
  2. Step 2: Effect of float index in splice

    splice expects an integer index; JavaScript coerces 2.5 to 2, but explicitly using Math.floor(arr.length / 2) ensures clarity and avoids reliance on type coercion.
  3. Step 3: Correct approach

    Use Math.floor(arr.length / 2) to get integer index 2.
  4. Final Answer:

    mid should be floored to an integer before using in splice. -> Option C
  5. Quick Check:

    Index must be integer for splice [OK]
Hint: Always floor middle index before splice [OK]
Common Mistakes:
  • Using float index in splice
  • Assuming splice removes by value
  • Passing wrong number of arguments to splice
5. Given an array arr with an even number of elements, how can you remove the two middle elements correctly in JavaScript?
hard
A. Use arr.splice(arr.length / 2 - 1, 2);
B. Use arr.splice(arr.length / 2, 1); twice
C. Use arr.pop(); arr.shift();
D. Use arr.splice(arr.length / 2, 2);

Solution

  1. Step 1: Identify middle indices for even length

    For even length n, middle two elements are at indices n/2 - 1 and n/2.
  2. Step 2: Remove two elements starting at n/2 - 1

    Using arr.splice(arr.length / 2 - 1, 2) removes both middle elements at once.
  3. Step 3: Why other options fail

    Use arr.splice(arr.length / 2, 1); twice removes one element twice but shifts indices, causing wrong removal; Use arr.pop(); arr.shift(); removes first and last elements; Use arr.splice(arr.length / 2, 2); removes elements after middle.
  4. Final Answer:

    Use arr.splice(arr.length / 2 - 1, 2); -> Option A
  5. Quick Check:

    Remove two middle elements starting at n/2 - 1 [OK]
Hint: Start splice at n/2 - 1 to remove two middle elements [OK]
Common Mistakes:
  • Removing elements twice causing index shift
  • Removing first and last instead of middle
  • Starting splice at wrong index
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard