我说的是对每一个排序举例说明
时间: 2023-06-25 19:03:12 浏览: 55
好的,我们来举几个排序算法的例子:
1. 冒泡排序(Bubble Sort):
假设我们有一个整型数组 arr = [3, 1, 4, 2, 5],现在我们要对其进行冒泡排序,实现方式如下:
- 第一趟排序:从第一个元素开始,比较相邻的两个元素,如果前者比后者大,则交换它们的位置。依次比较完所有相邻的元素,这样一趟排序结束后,最后一个元素一定是数组中最大的元素。因为最大的元素已经被排到了最后,所以在下一轮排序时就不用再考虑它了。这意味着,我们只需要比较数组中前 n - 1 个元素即可,其中 n 是数组的长度。
- 第二趟排序:同样地,从第一个元素开始,比较相邻的两个元素,如果前者比后者大,则交换它们的位置。依次比较完所有相邻的元素,这样第二趟排序结束后,倒数第二个元素一定是数组中第二大的元素。
- 以此类推,直到最后一趟排序结束,数组就被排好序了。
经过以上操作,我们得到的有序数组为 arr = [1, 2, 3, 4, 5]。
2. 插入排序(Insertion Sort):
假设我们有一个整型数组 arr = [3, 1, 4, 2, 5],现在我们要对其进行插入排序,实现方式如下:
- 第一步:将数组第一个元素视为已排序部分,第二个元素以及后面的元素视为未排序部分。
- 第二步:从未排序部分中取出第一个元素,将其与已排序部分从后往前进行比较。如果已排序部分中的元素比该元素大,则将已排序部分中的元素后移一位,直到找到一个比它小的元素或者已经到达已排序部分的开头。将该元素插入到已排序部分的正确位置。
- 第三步:重复以上步骤,直到未排序部分中的所有元素都被插入到已排序部分中。
经过以上操作,我们得到的有序数组为 arr = [1, 2, 3, 4, 5]。
3. 快速排序(Quick Sort):
假设我们有一个整型数组 arr = [3, 1, 4, 2, 5],现在我们要对其进行快速排序,实现方式如下:
- 第一步:选择数组中的一个元素作为基准值(pivot),一般选择第一个元素或最后一个元素。假设我们选择第一个元素 3 作为基准值。
- 第二步:将数组中小于基准值的元素都移到基准值的左边,大于基准值的元素都移到基准值的右边。这个过程称为分区(partition)。
- 第三步:对基准值左边的子数组和右边的子数组分别重复以上两步操作,直到子数组中只剩下一个元素或为空。
经过以上操作,我们得到的有序数组为 arr = [1, 2, 3, 4, 5]。
这些是三种基本的排序算法,它们的实现方式不同,但最终都能得到一个有序的数组。