冒泡排序算法示例:一步步排序数组
假设有一个数组:arr = [3, 1, 5, 2, 4],现在我们来使用冒泡算法对其进行排序。
首先,从数组的第一个元素开始,依次和后面的元素进行比较,如果当前元素比后面的元素大,就交换它们的位置。这样一轮比较下来,最大的元素就会被交换到数组的最后一个位置。具体过程如下:
第一轮比较:
- 比较 arr[0] 和 arr[1],发现 arr[1] 比 arr[0] 小,交换它们的位置,数组变为 [1, 3, 5, 2, 4]。
- 比较 arr[1] 和 arr[2],发现 arr[1] 比 arr[2] 小,不需要交换位置,数组保持不变。
- 比较 arr[2] 和 arr[3],发现 arr[3] 比 arr[2] 小,交换它们的位置,数组变为 [1, 3, 2, 5, 4]。
- 比较 arr[3] 和 arr[4],发现 arr[3] 比 arr[4] 大,交换它们的位置,数组变为 [1, 3, 2, 4, 5]。
第一轮比较结束后,最大的元素 5 已经被交换到数组的最后一个位置。
第二轮比较:
- 比较 arr[0] 和 arr[1],发现 arr[1] 比 arr[0] 大,不需要交换位置,数组保持不变。
- 比较 arr[1] 和 arr[2],发现 arr[1] 比 arr[2] 大,交换它们的位置,数组变为 [1, 2, 3, 5, 4]。
- 比较 arr[2] 和 arr[3],发现 arr[3] 比 arr[2] 大,不需要交换位置,数组保持不变。
- 比较 arr[3] 和 arr[4],发现 arr[3] 比 arr[4] 大,交换它们的位置,数组变为 [1, 2, 3, 4, 5]。
第二轮比较结束后,第二大的元素 4 已经被交换到数组的倒数第二个位置。
经过多轮比较,最终得到了一个有序的数组:arr = [1, 2, 3, 4, 5]。
原文地址: https://www.cveoy.top/t/topic/oo3s 著作权归作者所有。请勿转载和采集!