简单选择排序
在要排序的一组数中,选出最小的数与第一个位置的数交换;然后再剩下的数再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
排序流程
- 首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换。
- 接着从剩下的n-1个数据中选择次小的1个元素,将其和第2个位置的数据交换。
- 然后,这样不断重复,直到最后两个数据完成交换,至此,便完成了对原始数组的从小到大的排序。
例如
示例代码
public class SimpleChoiceSortDemo {
public static void main(String[] args) {
int[] a = { 2, 7, 8, 3, 10, 62, 92, 0, 5, 4 };
System.out.println("初始序列:" + Arrays.toString(a));
simpleChoiceSort(a);
System.out.println("最后:" + Arrays.toString(a));
}
public static void simpleChoiceSort(int[] a) {
int index;
for (int i = 0; i < a.length; i++) {
index=i;//初始索引
for (int j = i; j < a.length; j++) {
if(a[j]< a[index]){//如果后面的值大于索引值,修改索引值
index=j;
}
}
if(index !=i ){//如果两个不相等 则,交换两个位置的值
int temp=a[i];
a[i]=a[index];
a[index]=temp;
}
System.out.println("第" + (i+1) + "次:" + Arrays.toString(a));
}
}
}