#千峯JAVA逆戰班,3月27日#

在千峯逆戰班學習的第12天;
JAVA_DAY10;
今天學的課程主要有數組的傳參,冒泡排序;
中國加油!世界加油!
我自己加油!

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

class BubbleSort 
{
	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();
		}
		bubbleSort(arr);//冒泡排序;
		selectionSort(arr)//選擇排序;
		Arrays.sort(arr);//利用Java類來排序.
		for(int e :arr){
			System.out.print(e+"\t");
		}
	}
	
	public static void bubbleSort(int[] arr){
		for(int i= 1; i<arr.length;i++){//控制輪數:
			
			for(int j = 0;j < arr.length - i;j++){
				if(arr[j] > arr[j+1]){
					//交換
					int temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}
		}
		for(int e:arr){//強化遍歷
			System.out.print(e+"\t");
		}
		System.out.println("升序冒泡over");
	}
/**
	 * 選擇排序: 思路: 每一輪找個基準值:在基準值上放一個比較小的數.
	 * 定義一個變量k用於記錄每輪最小值的下標,以便交換.
	 */
	public static void selectionSort(int[] arr){
		for(int i =0;i<arr.length-1;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");
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章