選擇排序和冒泡排序定義

選擇排序

class TestTeacher{
	public static void 	selectSort(int[] arr){
		for(int y=0;y<arr.length;y++){
			for(int x=0;x<arr.length-1;x++){
				if(arr[x]<arr[y]){
					int temp = arr[x];
					arr[x] = arr [y];
					arr[y] = temp;
				}
			}
		}
		
	}
public static void main(String[] args){
	int[] arr = {1,2,4,7,2,7,3,7};
	printArray(arr);
	selectSort(arr);
	printArray(arr);
}
public static void printArray(int[] arr){
	System.out.print("[");
	for(int x = 0;x <arr.length;x++){
		if(x!=arr.length-1){
			System.out.print(arr[x]+",");
		}else {
			System.out.print(arr[x]+"]");
		}
	}
	
	}
}

泡排序:相鄰的兩個元素進行比較,如果符合條件換位

class TestTeacher{
	public static void 	selectSort(int[] arr){
		for(int y=0;y<arr.length-1;y++){
			for(int x=0;x<arr.length-y-1;x++){   //-y:讓每一次比較減少, -1:避免角標越界
				if(arr[x]>arr[x+1]){
					int temp = arr[x];
					arr[x]= arr[x+1];
					arr[x+1]=temp;
				}
			}
		}
		
	}
public static void main(String[] args){
	int[] arr = {1,2,4,7,2,7,3,7};
	printArray(arr);
	selectSort(arr);
	printArray(arr);
}
public static void printArray(int[] arr){
	System.out.print("[");
	for(int x = 0;x <arr.length;x++){
		if(x!=arr.length-1){
			System.out.print(arr[x]+",");
		}else {
			System.out.print(arr[x]+"]");
		}
      	}	
    }
}

無論什麼排序,都需要對滿足條件的元素進行位置置換

所以可以把這部分相同的代碼提取出來,單獨封裝成一個函數

public static void swap(int[] arr,int a ,int b){
	int temp = arr[a];
	arr[a] = arr[b];
	arr[b] = temp;
}

實際開發時,可以使用java提供的排序

import java.util.*;

Arrays.sort(arr);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章