选择排序
从一端开始,依次将当前元素与其后的每一个元素进行对比,若找到的目标元素与当前元素不是同一个元素则将两个元素进行互换,每次互换都将确定一个元素的最终位置
假设有N个元素需要排序,由于每一个元素都需要与其后的每一个元素进行比较以确定最终的目标元素。所以第一个元素需要与N-1个元素进行比较,即比较N-1次,而最后一个元素不需要与任何元素进行对比,即比较0次。
total = (n-1) + (n-2) + … + 2 + 1 + 0
total = (n-1) + (n-2) + … + 2 + 1
total = ((n-1) + 1) * (n-1)/2
total = n*(n-1)/2
如果待排序的元素集合已按指定的顺序排序好了,则不需要移动任何元素,故此时有零次移动
由于每一次移动元素都将确认一个元素的最终位置,在最糟糕的情况下,即每个元素都不在最中的位置上,则此时有N次移动
红色为目标元素,粗体为当前元素,灰色部分表示已排好序的元素
1 4 2 7 9 8 3 6
1 4 2 7 9 8 3 6
1 4 2 7 9 8 3 6
1 2 4 7 9 8 3 6
1 2 3 7 9 8 4 6
1 2 3 4 9 8 7 6
1 2 3 4 6 8 7 9
1 2 3 4 6 7 8 9
1 2 3 4 6 7 8 9