/*
需求:选择排序 (从小到大)
思路:
1, 假设所需排序的数据(以整型为例)存储在数组中,选择排序是对这 n-i 个数据进行特定形式的比较,从而得出一定的次序(从小到大,或从大到小)。
从n-i个记录中选出关键字最小的记录,并和第i(0<=i<arr.length) 个 记录进行交换。
2, 定义一个排序功能用以比较数组中数据的大小。
①---定义一个min变量,用于存放数组中下标为i的数组元素的值。
②---然后将arr[min]与其后的数组元素进行大小比较,
程序第一次执行时,即arr[min]=arr[0];
若arr[min]大于arr[1],则执行 min=1; 此时arr[min]存放的数据是相对之前min=0; 时的值小。
重复②,循环结束后 此时若min的值不等于i;则进行数值交换。
3,定义一个交换数据的功能,用于交换数据。
4,定义一个打印数组的功能,用于打印数组。
*/
class SortDemo
{
//打印数组功能
public static void printArray(int[] arr)
{
System.out.print("[");
for(int i=0;i<arr.length;i++)
{
if(i!=arr.length-1)
System.out.print(arr[i]+",");
else
System.out.println(arr[i]+"]");
}
}
//交换数据
public static void swap(int []arr,int a,int b)
{
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
//排序功能
public static void selectSort(int []arr)
{
for(int x=0;x<arr.length-1;x++)
{
int min=x;
for(int y=x+1;y<arr.length;y++)
{
if(arr[min]>arr[y])
min=y;
}
if(x!=min)
swap(arr,min,x);
}
}
public static void main(String[]args)
{
int [] arr={9,5,43,78,14,57,7};
printArray(arr);
sort(arr);
printArray(arr);
}
}
/*
总结:
方法调用的灵活性,传参数时不用带类型符号。
*/