基本思想及图例说明
- 冒泡排序是通过不断地将相邻的两个数进行比较,来达到排序的目的。
- 选择排序则是不断地遍历所有元素,找到最小(最大)的放在首位。
下面看图例:
初始序列: 5 2 4 6 1 3
第一次遍历找到最小的数 1 ,将他和首位元素 5 交换。
第一趟:1 2 4 6 5 3
第二次遍历除首位外的数,将最小的数 2 和第二位元素交换,但是 2 已经在第二位所以位置不变。
第二趟:1 2 4 6 5 3
第三次遍历除第一位和第二位的元素,将最小的数 3 和第三位元素交换。
第三趟:1 2 3 6 5 4
以此类推……
算法实现
对于具有 N 个元素的数组 arr[ N ]:
第 1 趟,在待排序数组元素 arr[ 1 ] ~ arr[ N ] 中选出最小的元素,将它与 arr[ 1 ] 交换;
第 2 趟,在待排序数组元素 arr[ 2 ] ~ arr[ N ] 中选出最小的元素,将它与 arr[ 2 ] 交换;
以此类推,第 i 趟在待排序数组元素 arr[ i ] ~ arr[ N ]中选出最小的元素,将它与 arr[ i ] 交换,使有序序列不断增长直到全部排序完毕。</