JAVA选择法排序

学习JAVA数组中的选择法排序:

它的基本思想是:第一次从R[0]~R[n-1]中选取最小值,与R[0]交换,第二次从R{1}~R[n-1]中选取最小值,与R[1]交换,...., 第i次从R[i-1]~R[n-1]中选取最小值,与R[i-1]交换,.....,第n-1次从R[n-2]~R[n-1]中选取最小值,与R[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列。

假如一下,给定数组中的值,

数组 int[] arr={5,2,8,4,9,1};

-------------------------------------------------------

第一趟排序: 原始数据:5  2  8  4  9  1

最小数据1,把1放在首位,也就是15互换位置,

排序结果:1  2  8  4  9  5

-------------------------------------------------------

第二趟排序:

1以外的数据{2  8  4  9  5}进行比较,2最小,

排序结果:1  2  8  4  9  5

-------------------------------------------------------

第三趟排序:

12以外的数据{8  4  9  5}进行比较,4最小,84交换

排序结果:1  2  4  8  9  5

-------------------------------------------------------

第四趟排序:

除第124以外的其他数据{8  9  5}进行比较,5最小,85交换

排序结果:1  2  4  5  9  8

-------------------------------------------------------

第五趟排序:

除第1245以外的其他数据{9  8}进行比较,8最小,89交换

排序结果:1  2  4  5  8  9

-------------------------------------------------------

import java.util.Scanner;

public class Rw1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input=new Scanner(System.in);
		System.out.println("请输入10个整数");
		int n;
		int[] a=new int[10];
		for(int i=0;i<10;i++){
			a[i]=input.nextInt();
		}
		for(int j=0;j<9;j++){ //外层循环,要走几趟
			for(int z=j+1;z<10;z++){ //也可以za[z]){//判断出最小的值
					n=a[j];
					a[j]=a[z];
					a[z]=n;
				}
			}
		}
		for(int i=0;i<10;i++){
			System.out.print(a[i]+"\t");
		}
	}

}

你可能感兴趣的:(JAVA选择法排序)