• DocumentCode
    976875
  • Title

    Improving quicksort performance with a codeword data structure

  • Author

    Baer, Jean-Loup ; Lin, Yi-bing

  • Author_Institution
    Dept. of Comput. Sci., Washington Univ., Seattle, WA, USA
  • Volume
    15
  • Issue
    5
  • fYear
    1989
  • fDate
    5/1/1989 12:00:00 AM
  • Firstpage
    622
  • Lastpage
    631
  • Abstract
    The problem is discussed of how the use of a new data structure, the codeword structure, can help improve the performance of quicksort when the records to be sorted are long and the keys are alphanumeric sequences of bytes. The codeword is a compact representation of a key with respect to some codeword generator. It consists of a byte for a character count of equal bytes, a byte for the first nonequal byte, and a pointer to the record. It is shown how the ordering of keys is preserved by an adequate choice of the code generator and how this can be applied to the quicksort algorithm. An analysis of the potential saving son various architectures and actual measurements shows the improvements that can be attained by using codewords rather than pointers. Architecturally independent parameters, such as the number of bytes to be compared, the number of swaps, architecture-dependent parameters such as caches and their write policies, and compiler optimizations such as in-line expansion and register allocation are considered
  • Keywords
    data structures; sorting; alphanumeric sequences; architecture-dependent parameters; bytes; caches; character count; codeword data structure; codeword generator; compiler optimizations; first nonequal byte; in-line expansion; keys; long; ordering; performance improvement; pointer; quicksort algorithm; records; register allocation; swaps; write policies; Computer science; Data structures; Indexing; Memory management; Optimizing compilers; Sorting;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.24711
  • Filename
    24711