{'fraction_non_alphanumeric': 0.021037868162692847, 'fraction_numerical': 0.007713884992987377, 'mean_word_length': 5.668224299065421, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Enhanced Generic Key-Address Mapping Sort Algorithm

Various methods, such as address-calculation sort, distribution counting sort, radix sort, and bucket sort, adopt the values being sorted to improve sorting efficiency, but require extra storage space. This work presents a specific key-address mapping sort implementation. The proposed algorithm has the advantages of linear average-time performance and no requirement for linked-list data structures, and can avoid the tedious second round of sorting required by other content-based sorting algorithms, such as Groupsort. The key-address mapping function employed in the proposed algorithm can fit data in any specific distribution when the mapping function is carefully designed. The cases for the uniformly and normally distributed data are explored herein to demonstrate the effectiveness of the proposed key-address mapping functions. Although the computation of the average and the standard deviation increases the overhead in our sorting algorithm, the empirical results indicate that the proposed sorting algorithm is still faster than both Quicksort and Groupsort for lists comprising 1,000 to 2,000,000 positive integers. The proposed algorithm adopts a valid key-address mapping function for uniformly distributed data, and a desirable approximation of the cumulative distribution function by using a cubic polynomial for normally distributed data, respectively.