1. 程式人生 > >Java基礎-----陣列排序

Java基礎-----陣列排序

氣泡排序

兩個相鄰位置比較,如果前面的元素比後面的元素大就交換位置。每次外迴圈都能確定一個最大值在陣列中的位置。

package StringBufferPackage;

public class Demo6_BubbleSort {
	public static void main(String[] args) {
		int[] arr = {3,6,5,9,7,45,32,22};
		BubbleSort(arr);
		print(arr);
	}

	private static void print(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + "\t");
		}
		
	}

	private static void BubbleSort(int[] arr) {
		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = 0; j < arr.length - i -1; j++) {//-1是為了防止陣列越界,-i為了提高效率
				if(arr[j] > arr[j + 1]) {
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
				
			}
		}
		
	}
}
選擇排序

用一個索引位置上的元素,一次與其他索引位置上的元素比較,小的在前面大的在後面。每次外迴圈可以確定一個最小值在陣列中的位置。

package StringBufferPackage;

public class Demo7_SelectSort {
	public static void main(String[] args) {
		int[] arr = {3,6,5,9,7,45,32,22};
		selectSort(arr);
		print(arr);
	}

	private static void print(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + "\t");
		}
		
	}

	private static void selectSort(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			for (int j = i + 1; j < arr.length; j++) {
				if (arr[i] > arr[j]) {
					int temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
				}
			}
		}
		
	}
}