选择排序:选择排序就是先在为排序的序列中找的最小(大)的元素放在序列的第一个位置,然后从未排序的序列中继续找出最小(大)的元素放在已排序的后面,以此类推直至排完所有的数字。代码中可以这样理解先默认第一个是最小的,然后从未排序的序列中找出最小的元素与第一个交换位置(如果相等就不用交换了)。
稳定性:不稳定(3,4,3,2,9)从小到大排序的话3的顺序会发生改变。
时间复杂度:O(n^2)
代码如下:
import java.util.Arrays;
public class selectSort {
public static void main(String[] args) {
int []a = {1,2,1,-1,6,4,8,9,5,8};
for (int i = 0; i < a.length-1; i++) {
for (int j = i+1; j < a.length; j++) {//这里的i+1是不用和自己再次进行比较
if(a[j]<a[i]){
int t =a[j];
a[j] = a[i];
a[i] = t;
}
}
}
System.out.println(Arrays.toString(a));
}
}
运行结果为:
[-1, 1, 1, 2, 4, 5, 6, 8, 8, 9]
我在代码中添加了输出每一次排完序的结果和最终的排序结果,这样可以更加进一步的了解选择排序的过程。