//排序 选择排序 数组中每个元素都进行比较
public class Test {
//公共静态的主方法。
public static void main(String[] args) {
//创建一个数组。
int[] arr = {12,69,852,25,89,588};
// 下标为 0 1 2 3 4 5
//排序。
selectS(arr);
//遍历。
printS(arr);
}
//调用排序的方法,对数组进行排序。
public static void selectS(int[] arr){
//创建for循环。
for(int i=0;i<arr.length;i++){
//嵌套for循环。
for(int j =i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
}
}
}
//遍历打印。
public static void printS(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
============分割线===========
ex:
int[] arr = {12,69,852,25,89,588};
12 69
12 852
12 25
12 89
12 588
69 852 25
25 89
25 588
852 69
69 89
69 588
852 89
852 588
结果就是: 12 25 69 89 588 852
在第一个for循环里,i=0,意思即为下标为零的数组内的数值。
j = i+j,意思即为0+1,也就是下标为一的数组内的数值。
如果说下标为零的数大于下标为一的数,就运行下面排序的代码。但是如果
不大于,那么就不循环,在这个基础上再加1,继续做比较,意思就是
这个i=0,如果说j的循环不结束,那么,就一直是零。
只有在j的循环结束之后,i也就是第一个下标才会更改成1,以此下推。
当下标为零的数值和数组内的所有数值都比较完之后,那么就是i更变的时候
之所以在for循环里加入了一个新值:int temp、是方便数值的互换。
ex:
int tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
打个比方说,你有两只手,每个手都拿了一个杯子,这两个杯子都是满的,但是
你想把左手杯的水倒在右手杯子里,这个时候,这个新值,就相当于别人递过来
一只手,手里拿了一个空杯子,这样你是不是就可以对两个杯子里的水进行互换
了?