#千峰JAVA逆战班,3月28日#

在千峰逆战班学习的第13天;
今天星期六,但要补清明的课,所以JAVA_DAY11;
今天我们结束了记事本写代码的阶段;开始使用eclipse写代码;
学习的课程主要有熟悉eclipse的常规应用,以及选择排序,常用类,二维数组;
中国加油!世界加油!
我自己加油!

package homework;

import java.util.Arrays;
import java.util.Scanner;

import javax.swing.plaf.synth.SynthSpinnerUI;

/**
 * 次代码为今天学的剩余两种排序:选择排序+利用导包排序.
 */
public class Test1 {

	public static void main(String[] args) {
		Scanner sc =new  Scanner(System.in);
		System.out.println("请输入长度:");
		int len = sc.nextInt();
		int[] arr = new int[len];
		for(int i = 0;i<arr.length;i++){
			System.out.println("请输入第"+(i+1)+"个数:");
			arr[i] = sc.nextInt();
		}
//		函数调用选择排序.
		selectionSort(arr);
		
//		利用Java类来排序.
		Arrays.sort(arr);
		for(int e :arr){
			System.out.print(e+"\t");
		}
		System.out.println("main ... over");
	}
	/**
	 * 选择排序: 思路: 每一轮找个基准值:在基准值上放一个比较小的数.
	 * 定义一个变量k用于记录每轮最小值的下标,以便交换.
	 */
	public static void selectionSort(int[] arr){
		for(int i =0;i<arr.length;i++){
			int k=i;
			for(int j = k+1;j<arr.length;j++){
				if(arr[k]>arr[j])
					k=j;
			}
//			防止过度交换:因为一轮后k值没变的话,就没必要交换.
			if(k!=i){
				int temp = arr[i];
				arr[i] = arr[k];
				arr[k] = temp;
			}
		}
		for(int e :arr){
			System.out.print(e+"\t");
		}
		System.out.println("选择排序...over");
	}
}

发布了12 篇原创文章 · 获赞 4 · 访问量 1095

猜你喜欢

转载自blog.csdn.net/yuxinganggame/article/details/105169798
今日推荐