请输入您要查询的百科知识:

 

词条 Burstsort
释义

  1. References

  2. External links

{{more footnotes|date=July 2017}}{{Infobox algorithm
|class=Sorting algorithm
|image=
|data=Trie
|time={{math|O(wn)}}
|space={{math|O(wn)}}
|optimal=?
}}Burstsort and its variants are cache-efficient algorithms for sorting strings and are faster than radix sort for large data sets of common strings, first published in 2003.[1]

Burstsort algorithms use a trie to store prefixes of strings, with growable arrays of pointers as end nodes containing sorted, unique, suffixes (referred to as buckets). Some variants copy the string tails into the buckets. As the buckets grow beyond a predetermined threshold, the buckets are "burst", giving the sort its name. A more recent variant uses a bucket index with smaller sub-buckets to reduce memory usage. Most implementations delegate to multikey quicksort, an extension of three-way radix quicksort, to sort the contents of the buckets. By dividing the input into buckets with common prefixes, the sorting can be done in a cache-efficient manner.

Burstsort was introduced as a sort that is similar to MSD radix sort,[1] but is faster due to being aware of caching and related radixes being stored closer to each other due to specifics of trie structure. It exploits specifics of strings that are usually encountered in real world. And although asymptotically it is the same as radix sort, with time complexity of {{math|O(wn)}} (w – word length and n – number of strings to be sorted), but due to better memory distribution it tends to be twice as fast on big data sets of strings.

References

1. ^{{Cite journal | last1 = Sinha | first1 = R. | last2 = Zobel | first2 = J. | doi = 10.1145/1005813.1041517 | title = Cache-conscious sorting of large sets of strings with dynamic tries | journal = Journal of Experimental Algorithmics| volume = 9 | url = https://people.eng.unimelb.edu.au/jzobel/fulltext/acmjea04.pdf| pages = 1.5 | year = 2005 | pmid = | pmc = | citeseerx = 10.1.1.599.861 }}
  • A burstsort derivative (C-burstsort), faster than burstsort: {{cite journal |url=http://www.cs.mu.oz.au/~rsinha/papers/SinhaRingZobel-2006.pdf |title=Cache-Efficient String Sorting Using Copying |first1=Ranjan |last1=Sinha |first2=Justin |last2=Zobel |first3=David |last3=Ring |journal=Journal of Experimental Algorithmics |volume=11 |date=January 2006 |issue=1.2 |pages=1.2 |doi=10.1145/1187436.1187439 |citeseerx=10.1.1.85.3498}}
  • The data type used in burstsort: {{cite journal |url=http://goanna.cs.rmit.edu.au/~jz/fulltext/acmtois02.pdf |title=Burst Tries: A Fast, Efficient Data Structure for String Keys |first1=Steffen |last1=Heinz |first2=Justin |last2=Zobel |first3=Hugh E. |last3=Williams |journal=ACM Transactions on Information Systems |volume=20 |issue=2 |pages=192–223 |date=April 2002 |citeseerx=10.1.1.18.3499 |doi=10.1145/506309.506312}}
  • {{cite book |chapter-url=http://goanna.cs.rmit.edu.au/~jz/fulltext/acsc03sz.pdf |chapter=Efficient Trie-Based Sorting of Large Sets of Strings |first1=Ranjan |last1=Sinha |first2=Justin |last2=Zobel |title=Proceedings of the 26th Australasian Computer Science Conference |pages=11–18 |year=2003 |volume=16 |isbn=978-0-909-92594-9 |citeseerx=10.1.1.12.2757}}
  • {{cite journal |title=Engineering Burstsort: Towards Fast In-Place String Sorting |first1=Ranjan |last1=Sinha |first2=Anthony |last2=Wirth |journal=ACM Journal of Experimental Algorithmics|volume=15 |issue=2.5 |pages=1–24 |date=March 2010 |doi=10.1145/1671973.1671978 |url=https://app.cs.amherst.edu/~ccmcgeoch/cs34/papers/a2_5-sinha.pdf|doi-broken-date=2019-02-15 }}

External links

  • A burstsort implementation in Java: [https://github.com/nlfiedler/burstsort4j burstsort4j]
  • Judy arrays are a type of copy burstsort: [https://code.google.com/p/judyarray C implementation]
{{sorting}}

1 : String sorting algorithms

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/23 13:19:32