Draft:Difference array
Submission declined on 10 June 2025 by CoconutOctopus (talk). This submission reads more like an essay than an encyclopedia article. Submissions should summarise information in secondary, reliable sources and not contain opinions or original research. Please write about the topic from a neutral point of view in an encyclopedic manner.
Where to get help
How to improve a draft
You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article. Improving your odds of a speedy review To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags. Editor resources
| ![]() |
Submission declined on 21 May 2025 by ToadetteEdit (talk). This draft's references do not show that the subject qualifies for a Wikipedia article. In summary, the draft needs multiple published sources that are: Declined by ToadetteEdit 21 days ago.
| ![]() |
An array that takes a sequence of numbers and stores the differences between each element in the array. More generally an array where . The difference array of a sequence can be denoted as . Commonly a difference array is use to make a series of range queries with constant time complexity[1][2]
Properties
[edit]Inverse Function
[edit]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 [2]
Uniqueness of Difference Arrays
[edit]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.[2]
Usage
[edit]Range Queries
[edit]Range queries are an array modifying operation that add a value to a defined range of values
- Left and right indices of the range of elements to edit (inclusive).
- Value to add to the elements within .
Difference arrays are used to update arrays that are modified using range queries within constant time.[3] initially the difference array has each element set to 0. Difference arrays when modified using a range query only require changes to the elements that lie on the bounds of the range query. So given a range query of the elements of will remain unchanged except for at index and . This allows for the entire range query to be expressed by modifying and rather than updating each element between.[4][1]
By performing a prefix sum on , once added to in where each matching index is added to the others, the resulting array will be as if each query was performed. This allows for any number of queries to to be performed within a single iteration.[3]
Proof
[edit]The relative differences of the values that lie within the range will remain unchanged after a range query is performed. However the elements and will have their relative differences change. Since each element within is increasing by element will be greater than the previous entry, similarly element will be x less than the next entry in the array.
Thus the middle x cancels out showing that has no effect on the differences of the middle values.
Steganalaysis
[edit]Methods of JPEG base steganography can be detected using difference arrays. It has been shown that Markov features that were extracting from zigzag intra-block and inter-block difference array improve steganography detection substantially. By calculating difference arrays along the horizontal and vertical directions of the JPEG's data array, then applying a Markov matrix to these difference arrays intra-block features are able to be constructed.[5]
References
[edit]- ^ a b Laaksonen, Antti (2020-05-08). Guide to Competitive Programming: Learning and Improving Algorithms Through Contests. Springer Nature. p. 137. ISBN 978-3-030-39357-1.
- ^ a b c "Prefix sum array and difference array - PEGWiki". wcipeg.com. Retrieved 2025-05-20.
- ^ a b Katiyar, Ishank (2021-07-30). "Understanding Difference Array: The Underrated Constant Time Range Update Algorithm (Part 1)". Medium. Retrieved 2025-05-20.
{{cite web}}
: CS1 maint: url-status (link) - ^ Nadaf, Aman (2023-02-28). "Difference Array Technique". TeckBakers. Retrieved 2025-05-20.
{{cite web}}
: CS1 maint: url-status (link) - ^ Zhou, Zhiping; Hui, Maomao (August 2009). "Steganalysis for Markov Feature of Difference Array in DCT Domain". 2009 Sixth International Conference on Fuzzy Systems and Knowledge Discovery. 7: 581–584. doi:10.1109/FSKD.2009.230.
- in-depth (not just passing mentions about the subject)
- reliable
- secondary
- independent of the subject
Make sure you add references that meet these criteria before resubmitting. Learn about mistakes to avoid when addressing this issue. If no additional references exist, the subject is not suitable for Wikipedia.