在千峯逆戰班學習的第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");
}
}