## HASH SORT: A LINEAR TIME COMPLEXITY MULITIPLE-DIMENSIONAL SORT ALGORITHM -- ORIGINALLY ENTITLED ”MAKING A HASH OF SORTS” (2004)

### BibTeX

@MISC{Gilreath04hashsort:,

author = {William F. Gilreath},

title = {HASH SORT: A LINEAR TIME COMPLEXITY MULITIPLE-DIMENSIONAL SORT ALGORITHM -- ORIGINALLY ENTITLED ”MAKING A HASH OF SORTS”},

year = {2004}

}

### OpenURL

### Abstract

Sorting and hashing are two completely different concepts in computer science, and appear mutually exclusive to one another. Hashing is a search method using the data as a key to map to the location within memory, and is used for rapid storage and retrieval. Sorting is a process of organizing data from a random permutation into an ordered arrangement, and is a common activity performed frequently in a variety of applications. Almost all conventional sorting algorithms work by comparison, and in doing so have a linearithmic greatest lower bound on the algorithmic time complexity. Any improvement in the theoretical time complexity of a sorting algorithm can result in overall larger gains in implementation performance. A gain in algorithmic performance leads to much larger gains in speed for the application that uses the sort algorithm. Such a sort algorithm needs to use an alternative method for ordering the data than comparison, to exceed the linearithmic time complexity boundary on algorithmic performance. The hash sort is a general purpose non-comparison based sorting algorithm by hashing, which has some interesting features not found in conventional sorting algorithms. The hash sort asymptotically outperforms the fastest traditional sorting algorithm, the quick sort. The hash sort algorithm has a

### Citations

706 |
Data Structures and Algorithms
- Aho, Hopcroft, et al.
- 1983
(Show Context)
Citation Context ...0 (9) 8 1 0 (3) 8 1 1 4 5 2 1 4 5 2 2 7 6 [3] 2 7 6 9 Before After The next value is 9, subtracting 1 is 8. The computed destination for where the value goes is (2,2). m = 0 1 2 m = 0 1 2 d d 0 (3) 8 =-=[1]-=- 0 (1) 8 3 1 4 5 2 1 4 5 2 2 7 6 9 2 7 6 9 Before After The next value is 3, subtracting 1 is 2. The computed destination for where the value goes is (0,2). m = 0 1 2 m = 0 1 2 d d 0 <1> 8 3 0 1 (8) 3... |

145 |
Computer Algorithms: Introduction to Design and Analysis
- Baase
- 1988
(Show Context)
Citation Context ...e mapping (illustrated once) is d = (4 div 3) = 1, m = (4 mod 3) = 1. Thus the computed destination for where the value goes is (1,1). 15sm = 0 1 2 m = 0 1 2 d d 0 (7) 8 1 0 (4) 8 1 1 9 5 2 1 9 5 2 2 =-=[4]-=- 6 3 2 7 6 3 Before After The next value is 7, subtracting 1 is 6. The computed destination for where the value goes is (2,0). m = 0 1 2 m = 0 1 2 d d 0 (4) 8 1 0 (9) 8 1 1 [9] 5 2 1 4 5 2 2 7 6 3 2 7... |

90 | S.: Fundamentals of Data Structures - Horowitz, Sahni - 1983 |

26 | Scatter Storage Techniques - Morris - 1968 |

22 | Addressing for Random-Access Storage - Peterson - 1957 |

18 | Data Structures & Program Design - Kruse - 1987 |

15 | An introduction to data structures with applications”, McGraw-hill - Tremblay, Sorenson - 1984 |

6 | Algorithms: Their Complexity and Efficiency - Kronsjo - 1987 |

5 | Sorting and Sort Systems - Lorin - 1975 |

3 | Data Structures - Smith - 1987 |

2 | Knuth: The Art of Computer Programing, Volume 3: Searching and Sorting - E - 1971 |

2 | Data Structures, Algorithms and Programs - Wirth |

1 |
The Design of Data Structures and Algorithms
- A
- 1989
(Show Context)
Citation Context ...5 2 2 7 6 3 2 7 6 3 Before After The next value is 4, subtracting 1 is 3. The computed destination for where the value goes is (1,0). m = 0 1 2 m = 0 1 2 d d 0 (9) 8 1 0 (3) 8 1 1 4 5 2 1 4 5 2 2 7 6 =-=[3]-=- 2 7 6 9 Before After The next value is 9, subtracting 1 is 8. The computed destination for where the value goes is (2,2). m = 0 1 2 m = 0 1 2 d d 0 (3) 8 [1] 0 (1) 8 3 1 4 5 2 1 4 5 2 2 7 6 9 2 7 6 9... |

1 | Advanced Programming : A Practical - Barron, Bishop - 1984 |

1 |
Data Structures for Computer Information Systems
- Ellzey
- 1982
(Show Context)
Citation Context ...t. The super-hash function for this data set is: d = (x − 1) div 3 ; m = (x − 1) mod 3 d m = 0 1 2 0 5 8 1 1 9 7 2 2 4 6 3 Matrix Initial Configuration m = 0 1 2 m = 0 1 2 d d 0 (5) 8 1 0 (7) 8 1 1 9 =-=[7]-=- 2 1 9 5 2 2 4 6 3 2 4 6 3 Before After The start position is initially at (0,0). The value is 5, subtracting 1 is 4. The mapping (illustrated once) is d = (4 div 3) = 1, m = (4 mod 3) = 1. Thus the c... |

1 | Internal Sorting Methods Illustrated with PL/1 Programs - Rich - 1972 |