class PaiXuDemo
{
public static void main(String[] args)
{
int[] arr={5,8,9,6,5,2,1};
printArray(arr);
getSelectSort(arr);
//Array.sort(arr);
printArray(arr);
}
/*
最快的排序方法是:希尔排序
Array.sort(arr) 这个是Java自带的排序方法,
正式的程序开发时是用这个方法为数组排序。
Select :选择
Sort :排序
SelectSort:选择排序法
步骤:
1.定义一个嵌套循环
2.
3.
4.
选择排序
内循环结束一次,最值出现在头角标的位置上
按升序排序if(arr[x]>arr[y])
按降序排序if(arr[x]<arr[y])
其他代码不用改变
*/
public static void getSelectSort(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])
{
/*int temp = arr[x];
arr[x]=arr[y];
arr[y]=temp; */
swap(arr,x,y); //上面的三句话可以红这个swap函数替换掉
}
}
}
}
/*
发现无论什么排序,都需要对满足条件的函数进行位置置换
所以可以把进行位置置换的代码提取出来,单独封装成一个函数。
*/
public static void swap(int[] arr,int a,int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
public static void printArray(int[] arra)
{
for(int x=0;x<arra.length;x++)
{
if(x!=arra.length-1)
System.out.print(arra[x]+",");
else
System.out.println(arra[x]);
}
}
} |