选择排序
package com.uplooking.bigdata.datastructure;
import java.util.Arrays;
public class SelectSort {...(arr));
}
/**
* 选择排序:
* 每次从数组中找到一个最小的元素放到前面
* 或者从i位置开始往后找,找一个最小的元素和i位置元组进行交换...2, 0, 1, 3, 6, [7], [9], [8]}
* 第七趟:比较n-7
* {-2, 0, 1, 3, 6, 7, 8, 9}
* 比较的次数...:[8, -2, 3, 9, 0, 1, 7, 6]
排序后:[-2, 0, 1, 3, 6, 7, 8, 9]
时间复杂度分析
1.时间复杂度为:O(n^2)
比较的次数(n-1) + (n-2) +...... + 2 + 1=(n-1 + 1) * (n-1)/2 = n*(n-1)/2 = n^2/2 - n/2
2.数据排列顺序是有可能被改变的,这取决于在比较是的比较符号(>还是>=),所以其是不稳定的排序算法