给定关键字(12,32,41,68,8,28,37,18,93,61),分别用直接插入排序、冒泡排序、选择排序、快速排序、归并排序及基数排序算法对其进行排序,指出每次排序的过程。
时间: 2023-09-01 22:10:45 浏览: 148
好的,我会为您逐一介绍这些排序算法的过程。
1. 直接插入排序:
首先,将关键字中的第一个元素12看作一个有序序列,然后将余下的元素依次插入到有序序列中。具体过程如下:
```
第一轮:12 32
第二轮:12 32 41
第三轮:12 32 41 68
第四轮:8 12 32 41 68
第五轮:8 12 28 32 41 68
第六轮:8 12 28 32 37 41 68
第七轮:8 12 18 28 32 37 41 68
第八轮:8 12 18 28 32 37 41 68 93
第九轮:8 12 18 28 32 37 41 61 68 93
```
2. 冒泡排序:
将相邻的两个元素进行比较,如果前一个元素比后一个元素大,则交换它们的位置。具体过程如下:
```
第一轮:12 32 41 68 8 28 37 18 61 93
第二轮:12 32 41 8 28 37 18 61 68 93
第三轮:12 32 8 28 37 18 41 61 68 93
第四轮:12 8 28 37 18 32 41 61 68 93
第五轮:8 12 28 18 32 41 61 68 37 93
第六轮:8 12 18 28 32 41 61 37 68 93
第七轮:8 12 18 28 32 41 37 61 68 93
第八轮:8 12 18 28 32 37 41 61 68 93
第九轮:8 12 18 28 32 37 41 61 68 93
```
3. 选择排序:
遍历整个序列,找到最小的元素,将其放在序列的最前面,然后再对剩余的元素进行选择排序。具体过程如下:
```
第一轮:8 32 41 68 12 28 37 18 93 61
第二轮:8 12 41 68 32 28 37 18 93 61
第三轮:8 12 18 68 32 28 37 41 93 61
第四轮:8 12 18 28 32 37 41 68 93 61
第五轮:8 12 18 28 32 37 41 61 93 68
第六轮:8 12 18 28 32 37 41 61 68 93
第七轮:8 12 18 28 32 37 41 61 68 93
第八轮:8 12 18 28 32 37 41 61 68 93
第九轮:8 12 18 28 32 37 41 61 68 93
```
4. 快速排序:
选择一个枢轴元素,将序列中的元素分为两部分,比枢轴小的放在左边,比枢轴大的放在右边。然后对左右两部分分别进行快速排序。具体过程如下:
```
第一轮:18 8 28 12 32 41 37 68 93 61
第二轮:12 8 18 28 32 41 37 68 93 61
第三轮:8 12 18 28 32 41 37 68 93 61
第四轮:8 12 18 28 32 37 41 68 93 61
第五轮:8 12 18 28 32 37 41 61 93 68
第六轮:8 12 18 28 32 37 41 61 68 93
第七轮:8 12 18 28 32 37 41 61 68 93
第八轮:8 12 18 28 32 37 41 61 68 93
第九轮:8 12 18 28 32 37 41 61 68 93
```
5. 归并排序:
将序列分成若干个子序列,对每个子序列进行排序,然后再将排序后的子序列合并成一个有序序列。具体过程如下:
```
第一轮:12 32 41 68 8 28 37 18 93 61
第二轮:12 32 41 68 8 28 18 37 61 93
第三轮:8 12 18 28 32 37 41 61 68 93
```
6. 基数排序:
按照关键字的位数进行排序,先按照个位数排序,再按照十位数排序,以此类推,直到最高位排序完成。具体过程如下:
```
第一轮:61 41 32 93 12 68 8 28 18 37
第二轮:8 12 18 28 32 37 41 61 68 93
```
以上就是这六种排序算法对给定关键字的排序过程。
阅读全文