在这里说一下选择排序。
首先上图,我们有一个数组arr需要排序,元素如下:
public static void main(String[] args) {
int[] arr={19,0,5,3,1,2};
//第一次大循环,咱们从0下标的元素开始
for(int i=0;i<arr.length;i++){
//这里咱们先假设一个元素最小的下标,用minIndex表示,首次值是0,以后随着i变化
int minIndex=i;
//这里一第一次小循环为例,后面以此类推就可以:
//第一次(小)循环,初始变量时记得+1,因为大循环的开始时,第一个元素都会被假设为最小元素,不参与比较
for(int j=i+1;j<arr.length;j++){
//我们拿着minIndex下标的元素去和其他元素不断地作比较
if(arr[minIndex]>arr[j]){
//直到拿到最小元素的下标,赋值给minIndex。
minIndex=j;
}
}
//对我们假设的minIdex下标进行判断,如果minIndex的值发生了改变
if(minIndex!=i){
//则将得到的最小下标的元素与i换位
int tmp=arr[i];
arr[i]=arr[minIndex];
arr[minIndex]=tmp;
}
}
System.out.println(Arrays.toString(arr));
}
博客写的匆忙,有问题的还望指教