选择算法
流程
每轮选择当前位置,开始找出后面的较小值与该位置交换
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
int[] arr = {5,2,3,1};
// 冒arr.length-1轮
for(int i = 0;i<arr.length-1;i++){
// 内部循环要控制每轮比较几次
for(int j = 0;j<arr.length - i - 1; j++){
//判断当前位置j是否大于其后一个位置处的数据,若较大,则交换
if(arr[j]>arr[j+1]){
//定义一个临时变量,记住后一个位置处的数据
int temp = arr[j+1];
// 把前一个位置处的数据赋值给后一个位置处
arr[j+1] = arr[j];
// 把最后一个位置原来的数据赋值给前一个位置处
arr[j] = temp;
}
}
}
|