Comparison sort

Sorting a set of unlabelled weights by weight using only a balance scale requires a comparison sort algorithm.

A comparison sort is a type of sorting algorithm that only reads the list elements through a single abstract comparison operation (often a "less than or equal to" operator or a three-way comparison) that determines which of two elements should occur first in the final sorted list. The only requirement is that the operator forms a total preorder over the data, with:

  1. if ab and bc then ac (transitivity)
  2. for all a and b, ab or ba (connexity).

It is possible that both ab and ba; in this case either may come first in the sorted list. In a stable sort, the input order determines the sorted order in this case.

Comparison sorts studied in the literature are "comparison-based".[1] Elements a and b can be swapped or otherwise re-arranged by the algorithm only when the order between these elements has been established based on the outcomes of prior comparisons. This is the case when the order between a and b can be derived via the transitive closure of these prior comparison outcomes.

For comparison-based sorts the decision to execute basic operations other than comparisons is based on the outcome of comparisons. Hence in a time analysis the number of executed comparisons is used to determine upper bound estimates for the number of executed basic operations such as swaps or assignments.[1]

A metaphor for thinking about comparison sorts is that someone has a set of unlabelled weights and a balance scale. Their goal is to line up the weights in order by their weight without any information except that obtained by placing two weights on the scale and seeing which one is heavier (or if they weigh the same).

Examples

Quicksort in action on a list of numbers. The horizontal lines are pivot values.

Some of the most well-known comparison sorts include:

Performance limits and advantages of different sorting techniques

There are fundamental limits on the performance of comparison sorts. A comparison sort must have an average-case lower bound of Ω(n log n) comparison operations,[2] which is known as linearithmic time. This is a consequence of the limited information available through comparisons alone — or, to put it differently, of the vague algebraic structure of totally ordered sets. In this sense, mergesort, heapsort, and introsort are asymptotically optimal in terms of the number of comparisons they must perform, although this metric neglects other operations. Non-comparison sorts (such as the examples discussed below) can achieve O(n) performance by using operations other than comparisons, allowing them to sidestep this lower bound (assuming elements are constant-sized).

Comparison sorts may run faster on some lists; many adaptive sorts such as insertion sort run in O(n) time on an already-sorted or nearly-sorted list. The Ω(n log n) lower bound applies only to the case in which the input list can be in any possible order.

Real-world measures of sorting speed may need to take into account the ability of some algorithms to optimally use relatively fast cached computer memory, or the application may benefit from sorting methods where sorted data begins to appear to the user quickly (and then user's speed of reading will be the limiting factor) as opposed to sorting methods where no output is available until the whole list is sorted.

Despite these limitations, comparison sorts offer the notable practical advantage that control over the comparison function allows sorting of many different datatypes and fine control over how the list is sorted. For example, reversing the result of the comparison function allows the list to be sorted in reverse; and one can sort a list of tuples in lexicographic order by just creating a comparison function that compares each part in sequence:

function tupleCompare((lefta, leftb, leftc), (righta, rightb, rightc))
    if lefta ≠ righta
        return compare(lefta, righta)
    else if leftb ≠ rightb
        return compare(leftb, rightb)
    else
        return compare(leftc, rightc)

Comparison sorts generally adapt more easily to complex orders such as the order of floating-point numbers. Additionally, once a comparison function is written, any comparison sort can be used without modification; non-comparison sorts typically require specialized versions for each datatype.

This flexibility, together with the efficiency of the above comparison sorting algorithms on modern computers, has led to widespread preference for comparison sorts in most practical work.

Alternatives

Some sorting problems admit a strictly faster solution than the Ω(n log n) bound for comparison sorting by using non-comparison sorts; an example is integer sorting, where all keys are integers. When the keys form a small (compared to n) range, counting sort is an example algorithm that runs in linear time. Other integer sorting algorithms, such as radix sort, are not asymptotically faster than comparison sorting, but can be faster in practice.

The problem of sorting pairs of numbers by their sum is not subject to the Ω(n² log n) bound either (the square resulting from the pairing up); the best known algorithm still takes O(n² log n) time, but only O(n²) comparisons.

Number of comparisons required to sort a list

n Minimum
1 0 0
2 1 1
3 3 3
4 5 5
5 7 7
6 10 10
7 13 13
8 16 16
9 19 19
10 22 22
11 26 26
12 29 30[3][4]
13 33 34[5][6][7]
14 37 38[7]
15 41 42[8][9][10]
16 45 46[11]
17 49 50[11]
18 53 54[11]
19 57 58[10]
20 62 62
21 66 66
22 70 71[7]
n
10 22 19
100 525 521
1 000 8 530 8 524
10 000 118 459 118 451
100 000 1 516 705 1 516 695
1 000 000 18 488 885 18 488 874
Above: A comparison of the lower bound to the actual minimum number of comparisons (from OEISA036604) required to sort a list of n items (for the worst case). Below: Using Stirling's approximation, this lower bound is well-approximated by .

The number of comparisons that a comparison sort algorithm requires increases in proportion to , where is the number of elements to sort. This bound is asymptotically tight.

Given a list of distinct numbers (we can assume this because this is a worst-case analysis), there are factorial permutations exactly one of which is the list in sorted order. The sort algorithm must gain enough information from the comparisons to identify the correct permutation. If the algorithm always completes after at most steps, it cannot distinguish more than cases because the keys are distinct and each comparison has only two possible outcomes. Therefore,

, or equivalently

By looking at the first factors of , we obtain

This provides the lower-bound part of the claim. A more precise bound can be given via Stirling's approximation. An upper bound of the same form, with the same leading term as the bound obtained from Stirling's approximation, follows from the existence of the algorithms that attain this bound in the worst case, like merge sort.

The above argument provides an absolute, rather than only asymptotic lower bound on the number of comparisons, namely comparisons. This lower bound is fairly good (it can be approached within a linear tolerance by a simple merge sort), but it is known to be inexact. For example, , but the minimal number of comparisons to sort 13 elements has been proved to be 34.

Determining the exact number of comparisons needed to sort a given number of entries is a computationally hard problem even for small n, and no simple formula for the solution is known. For some of the few concrete values that have been computed, see OEISA036604.

Lower bound for the average number of comparisons

A similar bound applies to the average number of comparisons. Assuming that

  • all keys are distinct, i.e. every comparison will give either a>b or a<b, and
  • the input is a random permutation, chosen uniformly from the set of all possible permutations of n elements,

it is impossible to determine which order the input is in with fewer than log2(n!) comparisons on average.

This can be most easily seen using concepts from information theory. The Shannon entropy of such a random permutation is log2(n!) bits. Since a comparison can give only two results, the maximum amount of information it provides is 1 bit. Therefore, after k comparisons the remaining entropy of the permutation, given the results of those comparisons, is at least log2(n!) − k bits on average. To perform the sort, complete information is needed, so the remaining entropy must be 0. It follows that k must be at least log2(n!) on average.

The lower bound derived via information theory is phrased as 'information-theoretic lower bound'. Information-theoretic lower bound is correct but is not necessarily the strongest lower bound. And in some cases, the information-theoretic lower bound of a problem may even be far from the true lower bound. For example, the information-theoretic lower bound of selection is whereas comparisons are needed by an adversarial argument. The interplay between information-theoretic lower bound and the true lower bound are much like a real-valued function lower-bounding an integer function. However, this is not exactly correct when the average case is considered.

To unearth what happens while analyzing the average case, the key is that what does 'average' refer to? Averaging over what? With some knowledge of information theory, the information-theoretic lower bound averages over the set of all permutations as a whole. But any computer algorithms (under what are believed currently) must treat each permutation as an individual instance of the problem. Hence, the average lower bound we're searching for is averaged over all individual cases.

To search for the lower bound relating to the non-achievability of computers, we adopt the Decision tree model. Let's rephrase a bit of what our objective is. In the Decision tree model, the lower bound to be shown is the lower bound of the average length of root-to-leaf paths of an -leaf binary tree (in which each leaf corresponds to a permutation). The minimum average length of a binary tree with a given number of leaves is achieved by a balanced full binary tree, because any other binary tree can have its path length reduced by moving a pair of leaves to a higher position. With some careful calculations, for a balanced full binary tree with leaves, the average length of root-to-leaf paths is given by

For example, for n = 3, the information-theoretic lower bound for the average case is approximately 2.58, while the average lower bound derived via Decision tree model is 8/3, approximately 2.67.

In the case that multiple items may have the same key, there is no obvious statistical interpretation for the term "average case", so an argument like the above cannot be applied without making specific assumptions about the distribution of keys.

n log n maximum number of comparisons for array-size in format 2^k

Can easy compute for real algorithm sorted-list-merging (array are sorted n-blocks with size 1, merge to 1–1 to 2, merge 2–2 to 4...).

(1) = = = = = = = =

(2) =   =   =   =     // max 1 compares (size1+size2-1), 4x repeats to concat 8 arrays with size 1 and 1
   === === === ===

(3)   =       =       // max 7 compares, 2x repeats to concat 4 arrays with size 2 and 2
     ===     ===  
    =====   ===== 
   ======= =======

(4)                   // max 15 compares, 1x repeats to concat 2 arrays with size 4 and 4

Formula extraction:
n = 256 = 2^8 (array size in format 2^k, for simplify)
On = (n-1) + 2(n/2-1) + 4(n/4-1) + 8(n/8-1) + 16(n/16-1) + 32(n/32-1) + 64(n/64-1) + 128(n/128-1)
On = (n-1) + (n-2) + (n-4) + (n-8) + (n-16) + (n-32) + (n-64) + (n-128)
On = n+n+n+n+n+n+n+n - (1+2+4+8+16+32+64+128)   | 1+2+4... = formula for geometric sequence Sn = a1 * (q^i - 1) / (n - 1), n is number of items, a1 is first item
On = 8*n - 1 * (2^8 - 1) / (2 - 1)
On = 8*n - (2^8 - 1)   | 2^8 = n
On = 8*n - (n - 1)
On = (8-1)*n + 1   | 8 = ln(n)/ln(2) = ln(256)/ln(2)
On = (ln(n)/ln(2) - 1) * n + 1

Example:
n = 2^4 = 16, On ~= 3*n
n = 2^8 = 256, On ~= 7*n
n = 2^10 = 1.024, On ~= 9*n
n = 2^20 = 1.048.576, On ~= 19*n

Sorting a pre-sorted list

If a list is already close to sorted, according to some measure of sortedness, the number of comparisons required to sort it can be smaller. An adaptive sort takes advantage of this "presortedness" and runs more quickly on nearly-sorted inputs, often while still maintaining an worst case time bound. An example is adaptive heap sort, a sorting algorithm based on Cartesian trees. It takes time , where is the average, over all values in the sequence, of the number of times the sequence jumps from below to above or vice versa.[12]

Notes

[13]

Notes

  1. ^ a b Wilkes, M. V. (1974-11-01). "The Art of Computer Programming, Volume 3, Sorting and Searching". The Computer Journal. 17 (4): 324–324. doi:10.1093/comjnl/17.4.324. ISSN 0010-4620.
  2. ^ Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2009) [1990]. Introduction to Algorithms (3rd ed.). MIT Press and McGraw-Hill. pp. 191–193. ISBN 0-262-03384-4.
  3. ^ Mark Wells, Applications of a language for computing in combinatorics, Information Processing 65 (Proceedings of the 1965 IFIP Congress), 497–498, 1966.
  4. ^ Mark Wells, Elements of Combinatorial Computing, Pergamon Press, Oxford, 1971.
  5. ^ Takumi Kasai, Shusaku Sawato, Shigeki Iwata, Thirty four comparisons are required to sort 13 items, LNCS 792, 260-269, 1994.
  6. ^ Marcin Peczarski, Sorting 13 elements requires 34 comparisons, LNCS 2461, 785–794, 2002.
  7. ^ a b c Marcin Peczarski, New results in minimum-comparison sorting, Algorithmica 40 (2), 133–145, 2004.
  8. ^ Marcin Peczarski, Computer assisted research of posets, PhD thesis, University of Warsaw, 2006.
  9. ^ Peczarski, Marcin (2007). "The Ford-Johnson algorithm is still unbeaten for less than 47 elements". Inf. Process. Lett. 101 (3): 126–128. doi:10.1016/j.ipl.2006.09.001.
  10. ^ a b Cheng, Weiyi; Liu, Xiaoguang; Wang, Gang; Liu, Jing (October 2007). "最少比较排序问题中S(15)和S(19)的解决" [The results of S(15) and S(19) to minimum-comparison sorting problem]. Journal of Frontiers of Computer Science and Technology (in Chinese). 1 (3): 305–313.
  11. ^ a b c Stober, F., & Weiß, A. (2023). Lower Bounds for Sorting 16, 17, and 18 Elements. In 2023 Proceedings of the Symposium on Algorithm Engineering and Experiments (ALENEX) (pp. 201-213). Society for Industrial and Applied Mathematics
  12. ^ Levcopoulos, Christos; Petersson, Ola (1989), "Heapsort - Adapted for Presorted Files", WADS '89: Proceedings of the Workshop on Algorithms and Data Structures, Lecture Notes in Computer Science, vol. 382, London, UK: Springer-Verlag, pp. 499–509, doi:10.1007/3-540-51542-9_41.
  13. ^ Knuth, Donald E. (1998). The art of computer programming, volume 3: (2nd ed.) sorting and searching. USA: Addison Wesley Longman Publishing Co., Inc. ISBN 978-0-201-89685-5.

References

Read other articles:

Irises, Vincent van Gogh Bunga-bunga Iris Vincent van Gogh, 1889 Cat minyak di atas kanvas, 71×93 cm (28×37 in) J. Paul Getty Museum, Los Angeles, California Bunga-bunga Iris adalah nama sebuah lukisan karya pelukis Vincent van Gogh. Merupakan satu dari sekian karyanya ketika ia berada di R.S. Jiwa Saint Paul-de-Mausole di Saint-Rémy-de-Provence, Prancis pada saat-saat terakhir menjelang kematiannya tahun 1890. Lukisan tersebut kemungkinan dipengaruhi oleh lukisan kayu Jepang, sepert...

 

Abraham Pietersen van DeursenBornbefore November 11, 1607HaarlemDiedc. 1670 (age 63)Known forCouncil of twelve menSpouseTryntie Melchior Abrahams (1611-1678)Parent(s)Pieter van Deursen (c1575-?) Maria or Paulina Vincke (c1575-?)RelativesMartin Van Buren, 3rd great-grandfather Abraham Pietersen van Deursen (before November 11, 1607 – c. 1670), aka Abraham Pietersen van Deusen, was an immigrant from Holland who settled in New Amsterdam and become one of the Council of 12 that was the fir...

 

Artikel ini sebagian besar atau seluruhnya berasal dari satu sumber. Diskusi terkait dapat dibaca pada the halaman pembicaraan. Tolong bantu untuk memperbaiki artikel ini dengan menambahkan rujukan ke sumber lain yang tepercaya. Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Februari 2023. Universitas MikroskilL...

العلاقات السعودية الفلبينية   الفلبين   السعودية تعديل مصدري - تعديل   العلاقات السعودية الفلبينية تشير إلى العلاقات الثنائية بين الفلبين و المملكة العربية السعودية. أقيمت علاقات دبلوماسية رسمية بين البلدين في 24 أكتوبر 1969.[1] مقارنة بين البلدين مقارنة عام�...

 

County in South Hwanghae Province, North KoreaChaeryŏng County 재령군CountyKorean transcription(s) • Hanja載寧郡 • McCune-ReischauerChaeryŏng-gun • Revised RomanizationJaeryeong-gunCountryNorth KoreaProvinceSouth Hwanghae ProvinceAdministrative divisions1 ŭp, 1 rodongjagu, 24 riArea • Total327.7 km2 (126.5 sq mi)Population (2008[1]) • Total125,631 • Density380/km2 (990/sq mi)...

 

French entry in the Eurovision Song Contest 1979 Je suis l'enfant soleilSingle by Anne-Marie DavidB-sideJust Like Loving YouReleased1979GenreChansonLength3:00LabelPolydorComposer(s)Hubert GiraudLyricist(s)Eddy MarnayAnne-Marie David singles chronology Neşeli Gençleriz (1976) Je suis l'enfant soleil (1979) Trop (1979) Eurovision Song Contest 1979 entryCountryFranceArtist(s)Anne-Marie DavidLanguageFrenchConductorGuy MattéoniFinals performanceFinal result3rdFinal points106Entry chronology◄ ...

Pour les articles homonymes, voir Hobbit (homonymie). Le HobbitUn voyage inattendu Données clés Titre original The Hobbit: An Unexpected Journey Réalisation Peter Jackson Scénario Peter JacksonFran WalshPhilippa BoyensGuillermo del Toro Musique Howard Shore Acteurs principaux Martin FreemanIan McKellenRichard ArmitageAndy SerkisManu Bennett Sociétés de production New Line CinemaMetro-Goldwyn-MayerWingNut Films Pays de production États-Unis Nouvelle-Zélande Genre Fantasy Durée 169 mi...

 

Church in Corfu, GreeceCathedral of Saint Jacob and Saint ChristopherCathedral of Saint James and Saint Christopher, CorfuLocationCorfuCountryGreeceAdministrationDioceseRoman Catholic Archdiocese of Corfu, Zakynthos and Cephalonia (since 1553) Cathedral of Saint Jacob and Saint Christopher (Greek: Ιερός Καθολικός Μητροπολιτικός Ναός (Duomo) and (Greek: Καθεδρικός Ναός Αγίου Χριστοφόρου και Ιακώβου Κέρκυρας)) is th...

 

Questa voce o sezione sull'argomento album pop non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Segui i suggerimenti del progetto di riferimento. Rebel Heartalbum in studioArtistaMadonna Pubblicazione10 marzo 2015(Vedi date di pubblicazione) Durata55:06 (standard)74:26 (deluxe) Tracce14 (standard)19 (deluxe)25 (super deluxe) GenerePop[1] Etichetta...

2020年夏季奥林匹克运动会科索沃代表團科索沃国旗IOC編碼KOSNOC科索沃奧林匹克委員會網站www.noc-kosovo.org(英文)(阿爾巴尼亞文)(塞爾維亞文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員11參賽項目6个大项旗手开幕式:阿基爾·賈科瓦(英语:Akil Gjakova)和瑪琳達·開爾門蒂(柔道)[1]闭幕式�...

 

Keith SilversteinNama lainDavid Roach, Darin BugPekerjaanPengisi suaraTahun aktif1999–sekarangAgenDean Panero TalentSuami/istriRosemary Do ​(m. 2010)​Anak3Situs webwww.keithsilverstein.com Keith Silverstein adalah pengisi suara Amerika, yang dikenal karena mengisi suaranya ke versi bahasa Inggris dari anime dan video game Jepang, yang berafiliasi dengan Bang Zoom! Entertainment, Viz Media, Studiopolis dan Funimation. Dia terkenal karena perannya sebag...

 

Former political party in the Dutch East Indies Indonesian Islamic Party Partai Islam IndonesiaAbbreviationPIILeaderSoekiman WirjosandjojoFounded4 December 1938 (1938-12-04)Dissolvedc. March 1942 (1942-03)Split fromIndonesian Islamic Union Party (PSII)IdeologyIslamic socialismNational affiliationIndonesian Political Federation (GAPI) The Indonesian Islamic Party (Indonesian: Partai Islam Indonesia, PII) was an Islamic political party in the Dutch East Indies (now...

Musée Paul et Alexandra KanellopoulosInformations généralesSite web (el + en) pacf.gr/enLocalisationLocalisation dème des Athéniens GrèceCoordonnées 37° 58′ 22″ N, 23° 43′ 33″ Emodifier - modifier le code - modifier Wikidata Le musée Paul et Alexandra Kanellopoulos (grec moderne : Μουσείο Παύλου και Αλεξάνδρας Κανελλοπούλου) est un musée d'antiquités situé à Athènes, en Grèce....

 

Disambiguazione – Se stai cercando altri significati, vedi Ossidiana (disambigua). OssidianaLipari - affioramento di ossidiana. È ben osservabile la struttura vetrosa di tipo fluidale.CategoriaRoccia magmatica SottocategoriaRoccia magmatica effusiva Composizione chimicasilicatica Minerali principaliplagioclasio, anfiboli, pirosseni Minerali accessoriolivina Strutturaamorfo Tessituraamorfo L'ossidiana è un vetro vulcanico la cui formazione è dovuta al rapidissimo raffreddamento della lav...

 

English musician For the organist, see David Patrick Gedge. This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentia...

US intelligence agency in charge of satellite intelligence National Reconnaissance OfficeNRO headquarters at nightAgency overviewFormedEstablished: August 25, 1960 (1960-08-25)Declassified: September 18, 1992 (1992-09-18)JurisdictionUnited StatesHeadquartersChantilly, Virginia, U.S.MottoSupra Et Ultra(Above And Beyond)Annual budgetClassifiedAgency executiveChristopher Scolese, Director[1]Troy Meink, Principal Deputy Director[2]Major General Christ...

 

This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Rodobrana – news · newspapers · books · scholar · JSTOR (February 2021) This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help improve this article ...

 

Partai Tindakan Rakyat Nama dalam bahasa InggrisPeople's Action PartyNama dalam bahasa MelayuParti Tindakan RakyatNama dalam bahasa Mandarin人民行动党Rénmín XíngdòngdǎngNama dalam bahasa Tamilமக்கள் செயல் கட்சிMakkaḷ Ceyal KaṭciSingkatanPAPKetua umumGan Kim YongSekretaris JenderalLee Hsien LoongWakil KetuaMasagos ZulkifliAsisten Sekretaris JenderalHeng Swee KeatChan Chun SingPendiriLee Kuan YewLim Chin SiongS. RajaratnamToh Chin ChyeLim Kim SanDib...

1997 FIFA Confederations Cup1997 السعودية1997 FIFA Confederations Cup official logoTournament detailsHost countrySaudi ArabiaCityRiyadhDates12–21 DecemberTeams8 (from 6 confederations)Venue(s)1 (in 1 host city)Final positionsChampions Brazil (1st title)Runners-up AustraliaThird place Czech RepublicFourth place UruguayTournament statisticsMatches played16Goals scored52 (3.25 per match)Attendance333,500 (20,844 per match)Top scorer(s) Rom�...

 

إسيلورالشعارمعلومات عامةالشعار النصي Mieux voir le monde (بالفرنسية) البلد  فرنسا التأسيس 1972[1] النوع منظمة الشكل القانوني شركة بأسهم مبسطة[2] المقر الرئيسي شارنتون لو بونت موقع الويب essilor.com المنظومة الاقتصاديةالشركة الأم EssilorLuxottica (en) الشركات التابعة Essilor (Germany) (en) Foster Grant ...