class Demo
{
public static void selectSort(int[] arr)
{
for (int x= 0;x<arr.length-1 ;x++ )
{
for (int y= x+1 ;y<arr.length ;y++ )
{
if(arr[x]>arr[y]); //如果这样写的话,表示这个if只有判断的条件,但是没有if所控制作用范围的区域.也就是说只不过就是读了一次就结束了.
//从这里开始, 和if一点关系都没有,下面的{}区域只是作为局部代码块所使用. 所以这里的代码是一定会被for循环执行到的. 也就是说, 每一次遍历都要交换一次.
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
public static void printArray(int[] arr)
{
System.out.print("[");
for (int x=0;x<arr.length ;x++ )
{
if(x!= arr.length-1)
System.out.print(arr[x]+", ");
else
System.out.println(arr[x]+"]");
}
}
public static void main(String[] args)
{
int [] arr = new int[]{3,1,4,2,7,5};
System.out.println("排序前的数组:");
printArray(arr);
selectSort(arr);
System.out.println();
System.out.println("排序后的数组:");
printArray(arr);
}
}
|