java-选中排序(新手)

//排序 选择排序 数组中每个元素都进行比较
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;

打个比方说,你有两只手,每个手都拿了一个杯子,这两个杯子都是满的,但是

你想把左手杯的水倒在右手杯子里,这个时候,这个新值,就相当于别人递过来

一只手,手里拿了一个空杯子,这样你是不是就可以对两个杯子里的水进行互换

了?

原文地址:https://www.cnblogs.com/lxr521/p/10526258.html