四. 常见基本排序算法的发明时间及发明人
1. 常见基本排序算法的发明时间及发明人列表:
| 排序算法 | 发现时间 | 英文作者 | 中文作者 | 类型 |
|---|---|---|---|---|
| 选择排序(Selection Sort) | 很早 | Originated from life. | 理念来自于日常生活 | 比较 |
| 插入排序(Insertion Sort) | 很早 | Originated from life. | 理念来自于日常生活 | 比较 |
| 基数排序(Radix Sort) | 1887年 | Herman Hollerith | 赫尔曼·何乐礼 | 非比较 |
| 归并排序(Merge Sort) | 1945年 | John von Neumann | 约翰·冯·诺伊曼 | 比较 |
| 计数排序(Counting Sort) | 1954年 | Harold H. Seward | 哈罗德·赫尔伯特·西华德 | 非比较 |
| 冒泡排序(Bubble Sort) | 1956年 | Sir Charles Antony Richard Hoare | 查尔斯·安东尼·理查德·霍尔 | 比较 |
| 希尔排序(Shell Sort) | 1959年 | Donald Shell | 唐纳德·希尔 | 比较 |
| 快速排序(Quick Sort) | 1960年 | Sir Charles Antony Richard Hoare | 查尔斯·安东尼·理查德·霍尔 | 比较 |
| 堆排序(Heap Sort) | 1964年 | Robert W. Floyd J. W. J. Williams | 罗伯特·弗洛伊德和 J. W. J. 威廉姆斯 | 比较 |
| 桶排序(Bucket Sort) | 1972年 | Richard M. Karp | 理查德·M·卡普 | 非比较 |
秋色欣赏:

2 简要说明
-
选择排序 (Selection Sort):
- 背景:选择排序是一种简单直观的排序算法,起源于日常生活中挑选最大或最小值的过程。
- 特点:每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
-
插入排序 (Insertion Sort):
- 背景:插入排序类似于整理手中的扑克牌,逐个将每张牌插入到已排好序的牌中。
- 特点:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
-
基数排序 (Radix Sort):
- 背景:由赫尔曼·霍勒里思于1887年发明,用于卡片制表机的排序。
- 特点:将整数按位数分配到桶中,依次按各个位数进行排序。
-
归并排序 (Merge Sort):
- 背景:由约翰·冯·诺伊曼在1945年发明,是一种基于分治思想的排序算法。
- 特点:将序列递归地分成两部分,对两部分分别排序,然后合并排序结果。
-
计数排序 (Counting Sort):
- 背景:由哈罗德·赫尔伯特·西华德于1954年提出,适用于整数排序。
- 特点:利用输入数据值作为索引,将元素放在正确的位置上,适用于范围较小的整数排序。
-
冒泡排序 (Bubble Sort):
- 背景:由查尔斯·安东尼·理查德·霍尔发现,类似于水中的气泡逐渐上升的过程。
- 特点:重复地遍历待排序列,每次比较相邻两个元素并交换它们的位置,使得每次遍历后最大的元素移动到最后。
-
希尔排序 (Shell Sort):
- 背景:由唐纳德·希尔于1959年提出,是插入排序的一种改进版本。
- 特点:通过将数组分成若干子序列分别进行插入排序,减少数据移动次数,逐步缩小增量,最后进行直接插入排序。
-
快速排序 (Quick Sort):
- 背景:由查尔斯·安东尼·理查德·霍尔于1960年提出,是一种高效的排序算法。
- 特点:通过分治法将数据分为两部分,递归地对每部分进行排序。
-
堆排序 (Heap Sort):
- 背景:由罗伯特·弗洛伊德和J. W. J. 威廉姆斯共同于1964年提出,利用堆这种数据结构来实现排序。
- 特点:将待排序列构造成一个大顶堆(或小顶堆),然后依次取出堆顶元素并调整堆结构,直到堆为空。
-
桶排序 (Bucket Sort):
- 背景:由理查德·M·卡普于1972年提出,是一种分配排序算法。
- 特点:将数组元素分到有限数量的桶中,每个桶内分别排序,然后依次合并桶中的元素得到有序序列。
谢谢阅读完,文章问题请留言指正

浙公网安备 33010602011771号