选择排序小总结。

/*
需求:选择排序 (从小到大)

思路:
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);
	}
}


/*
总结:

方法调用的灵活性,传参数时不用带类型符号。

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值