ArticleslgStudy

computer science

Splaysort

Splaysort is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Splaysort rather than just read about it. In short: In computer science, splaysort is an adaptive comparison sorting algorithm based on the splay tree data structure. Algorithm The steps of the algorithm are: Initialize an empty splay tree For each data item in the input order, insert it into the splay tree Traverse the splay tree inorder to find the sorted order of the data Thus, the algorithm may be seen as a form of insertion sort or tree sort, using a splay tree…

Key takeaways

  • Splaysort belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Splaysort to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Splaysort from memory before moving on to harder problems.

Reference excerpt

In computer science, splaysort is an adaptive comparison sorting algorithm based on the splay tree data structure.

Algorithm The steps of the algorithm are:

Initialize an empty splay tree For each data item in the input order, insert it into the splay tree Traverse the splay tree inorder to find the sorted order of the data Thus, the algorithm may be seen as a form of insertion sort or tree sort, using a splay tree to speed up each insertion.

Analysis Based on the amortized analysis of splay trees, the worst case running time of splaysort, on an input with n data items, is O(n log n), matching the time bounds for efficient non-adaptive algorithms such as quicksort, heap sort, and merge sort. For an input sequence in which most items are placed close to their predecessor in the sorted order, or are out of order with only a small number of other items, splaysort can be faster than O(n log n), showing that it is an adaptive sort. To quantify this, let dx be the number of positions in the input that separate x from its predecessor, and let ix be the number of items that appear on one side of x in the input and on the other side of x in the output (the number of inversions that involve x). Then it follows from the dynamic finger theorem for splay trees that the total time for splaysort is bounded by

∑ x log ⁡ d x {\displaystyle \sum _{x}\log d_{x}}

and by

∑ x log ⁡ i x {\displaystyle \sum _{x}\log i_{x}} . Splaysort can also be shown to be adaptive to the entropy of the input sequence.

Experimental results In experiments by Moffat, Eddy & Petersson (1996), splaysort was slower than quicksort on tables of random numbers by a factor of 1.5 to 2, and slower than mergesort by smaller factors. For data consisting of larger records, again in a random order, the additional amount of data movement performed by quicksort significantly slowed it down compared to pointer-based algorithms, and the times for splaysort and mergesort were very close to each other. However, for nearly presorted input sequences (measured in terms of the number of contiguous monotone subsequences in the data, the number of inversions, the number of items that must be removed to make a sorted subsequence, or the number of non-contiguous monotone subsequences into which the input can be partitioned) splaysort became significantly more efficient than the other algorithms. Elmasry & Hammad (2005) compared splaysort to several other algorithms that are adaptive to the total number of inversions in the input, as well as to quicksort. They found that, on the inputs that had few enough inversions to make an adaptive algorithm faster than quicksort, splaysort was the fastest algorithm.

Variations Saikkonen & Soisalon-Soininen (2012) modify splaysort to be more strongly adaptive to the number of contiguous monotone subsequences in the input, and report on experiments showing that the resulting algorithm is faster on inputs that are nearly presorted according to this measure.

References

Worked examples

Example 1 — a first encounter with Splaysort

Start with the simplest possible case. Write down what Splaysort claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Splaysort before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Splaysort ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Splaysort

In research
Splaysort appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Splaysort in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Splaysort is common in secondary-school and first-year university syllabi. It links to neighbouring topics Sorting algorithms, so understanding it makes those chapters shorter.
In everyday life
Look for Splaysort outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Splaysort in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Splaysort means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Splaysort out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Splaysort in simple terms?

In computer science, splaysort is an adaptive comparison sorting algorithm based on the splay tree data structure. Algorithm The steps of the algorithm are: Initialize an empty splay tree For each data item in the input order, insert it into the splay tree Traverse the splay tree inorder to find th…

Why does Splaysort matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Splaysort?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Splaysort.

Tags

  • Sorting algorithms

Keep exploring