思路是:
循环查找从当前位置开始到数组的最后一位中最小的数值,如果当前位置大于下一位,则将下一位当作最小,依次往后查找,直到最后一位,然后将下标返回给临时变量minPosition;
根据返回的最小位置下标,取出最小元素,并将当前位置的元素取出,将最小元素放到当前位置,将当前位置的oid元素放到最小元素原来所在的位置;
这样就将数组中最小元素放到了数组的最前面,依次执行。
/**
* 定义一个无序数组,做选择排序
*/
public class Date3 {
public static void main(String[] args) {
Date3 date3 = new Date3();
//排序的数组
int [] arr = {4,2,5,6,7,8,9,2,2,9,99};
date3.selectionSort(arr,1);
}
void selectionSort(int[] arr,int n){
//最小元的位置
int minPosition ;;
//存放当前位置元素
int thisNum;
for (int i =0;i<arr.length;i++){
//传入数组和当前下标,获得最小元的位置
minPosition = scanForMin(arr,i);
//取出当前位的数值,用来存放最小数值
thisNum = arr[i];
//将最小元存放在当前位
a