class ArrayDemo
{ public static void main(String[]args) {
int[]arr={2.5.1.6.3};
System.out.print("数组排序前:");
printArray(arr); //调用下面定义的输出语句
selectSofr(arr); //主函数下面定义的排序方法
System.out.print("数组排序后:");
printArray(arr); //调用下面定义的输出语句
}
public staic void selectSort(int[]arr) //选择排序方法定义
{
for(x=0;x<arr.length-1;x++) // x<arr.length-1 是代表最大值? 还是只是长度减掉最小值的长度?
{
int num=arr[x]; //定义个变量代表 数组里的一个元素哦
int index=x; // 定义角标 --------------------俩者一起来定义最小值和最小值的角标, 效率提高
for(y=x+1;y<arr.length;y++) //同理
{
if(num>arr[y]) //条件式
num=arr[y];
index=y;
}
}
if(index !=x) //条件式, 只要角标值不等于x的角标,及执行以下的操作,如果最小值就是x自己就没必要执行这个了!
swap(arr,x,index) //这个大家请看下面这个定义哦
}
}
public static void swap(int[]arr,int a ,int b) //这玩意儿的定义提升了复用性,不用像第一次方法一样每一次搞个换位都打一堆。
int temp = arr[a];
arr[a]=arr[b] ;
arr[b]=temp;
}
public static void pritnArray(int[]arr) //之前帖子方法1有讲
{
System.out.print("[");
for(int x=0;x<arr.length;x++)
{
if(x != arr.length-1);
System.out.print(arr[x]+",");
elas
System.out.print(arr[x]+"]");
}
}
不确定点求解惑:1.x<arr.length-1 是代表最大值? 还是只是长度减掉最小值的长度?
2.swap的意义?
有错误及时指出哦, 谢谢。
|
|