Jump to content

Draft:Difference Array

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Heyyo53 (talk | contribs) at 23:17, 20 May 2025 (Submitting using AfC-submit-wizard). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


An array that is constructed using a sequence of numbers and the differences between each element forming a new array in which . The difference array of can be denoted as [1]

Inverse Function

A difference array can be undone using a prefix sum array. Here the prefix sum array is denoted as where is an arbituary constant prepending the prefix sum array. Given that is by plugging into the prefix sum function [1]

Uniqueness of Difference Arrays

only has a single difference array . If no additional inputs are given uses the elements of to form the difference array. The non-communativity of subtraction only allows for single way to represent a given difference array.[1]

Range Queries

A difference array can be used to update an array that is being modified using range queries in constant time.[2] Here a query with as the left and right indices of the array to edit and as the value to add to the elements within .[3] Difference arrays exhibit a unique property where when modified with a range query only the bounds of said query are modify. So given the range the elements of will remain unchanged except for which will be more than before the query. This allows for a range query to be expressed by and .

To obtain the final array a prefix sum can be performed on , then when the prefix sum of is added to all the queries that were to being applied to will be performed through a single iteration.[2]

References

  1. ^ a b c "Prefix sum array and difference array - PEGWiki". wcipeg.com. Retrieved 2025-05-20.
  2. ^ a b Katiyar, Ishank (Jul, 30, 2021). "Understanding Difference Array: The Underrated Constant Time Range Update Algorithm (Part 1)". Medium. Retrieved May, 20, 2025. {{cite web}}: Check date values in: |access-date= and |date= (help)CS1 maint: url-status (link)
  3. ^ Nadaf, Aman (Feb / 28 / 2023). "Difference Array Technique". TeckBakers. Retrieved May, 20, 2025. {{cite web}}: Check date values in: |access-date= and |date= (help)CS1 maint: url-status (link)