java学习之数组排序一:选择排序

在讲完java中数组定义的两种方式之外,这里需要讲一下对数组常用的方法,第一个就是排序。

加入我们现在有个数组:int[] arr = {12,87,34,3,98,33,103};

思路1:

  1、首先拿数组当中的第一个数字与其他数字一一做比较,如果比第一个数字大,那么就两个元素调换下位置,如果小于或者等于就维持原来的状态。循环往复,直至确定第一个数字是这个数组当中的最小值。然后把索引为0的元素,放到一边,之后再用索引为1的元素与其他元素依次比较,如果大于索引1的位置的元素,那么两者互换下位置,如果小于或者等于那么则保持各自位置不变,之后在索引位置2的位置,确定剩下的数字当中是最小的,其他位置的元素也是按照这种排序方法。需要注意的是最后一个元素就不用比较了,肯定是最大的。

选择排序:

class SelectSort
{
	
	public static void main(String[] args) 
	{
		
		int[] arr = {12,87,34,39,134,4,45,8,21233,99};

		printArr(arr);

		selectSort(arr);

		printArr(arr);

	}

	public static void selectSort(int[]  arr){

		for(int i = 0; i<arr.length-1; i++)
		{

			for(int a = i + 1; a<=arr.length-1 ; a++)
			{
			/**
			*	if(arr[i]>arr[a])
			*	{
			*		int temp = arr[i];
			*		arr[i] = arr[a];
			*		arr[a] = temp;
			*	}
			*/
				if(arr[i]>arr[a])
					swap(arr,i,a);

			}

		}

	}

	public static void printArr(int[] arr)
	{
		System.out.print("[");
		for(int i=0 ; i<arr.length ; i++){

			System.out.print(arr[i]);
			if(i<arr.length-1)
				System.out.print(",");

		}
		System.out.print("]");
		System.out.println();

	}

	public static void swap(int[]arr,int x, int y)
	{

		int temp;
		if(arr[x]>arr[y])
		{

			temp = arr[x];
			arr[x] = arr[y];
			arr[y] = temp;

		}

	}

}

  

posted @ 2013-09-16 09:31  stark_javac  阅读(422)  评论(0编辑  收藏  举报