选择排序思路
第一轮取最小元素放在数组的第一个,
第二轮从数组的第一个开始选择最小的元素放在数组的第二个
以此类推
如:
3,-1,9,10,-2,5,1,8
第一轮 -2,|-1,9,10,3,5,1,8
第二轮 -2,-1|,9,10,3,5,1,8
第三轮 -2.-1,1|,10,3,5,9,8
第四轮 -2.-1,1,3,|10,5,9.8
第五轮 -2,-1,1,3,5|,10,9,8
第六轮 -2,-1,1,3,5,8|,9,10
第七轮 -2,-1,1,3,5,8,9|,10
代码实现
public static void main(String[] args) {
int[] array= {3,-1,9,10,-2,5,1,8};
//测试数组
for(int i=0;i<array.length-1;i++) {
int min = array[i]; 假设第一个数为最小的元素
int index = i; 数组下标的标记
for(int j=i+1;j<array.length;j++) {
if(min>array[j]) {
min = array[j];
index = j; //存下标,方便交换元素
}
}
if(index != i) {
array[index] = array[i]; //交换
array[i] = min; //把最终最小的元素放在左边
}
}
for(int i=0;i<array.length;i++) {
System.out.print(array[i]+" ");
}
}
输出结果: