1. 程式人生 > >Java之氣泡排序與選擇排序的區別與理解

Java之氣泡排序與選擇排序的區別與理解

Java之選擇排序與氣泡排序的區別與理解

選擇排序

       選擇排序:就是每次從一組待排序的陣列中找到最小值(或最大值)然後與該序列的起始位置進行替換,以此類推,直到待排序的陣列排序好為止。

選擇排序程式碼:

public class SelectionSort {

	public static void main(String[] args) {
		int[] myArray = {18,91,38,77,36,55,74,30,2,41};
		System.out.println("排序前的陣列為:");
		for(int i=0;i<myArray.length;i++) {
			System.out.print(myArray[i]+" ");
		}
		//選擇排序演算法
		for(int i=0;i<myArray.length;i++) {
			for(int j=i+1;j<myArray.length;j++) {
				int min = myArray[i];
				if(min>myArray[j]) {
					int temp = myArray[i];
					myArray[i] = myArray[j];
					myArray[j] = temp;
				}
			}
		}
		System.out.println();
		System.out.println("排序後的陣列為:");
		for(int i=0;i<myArray.length;i++) {
			System.out.print(myArray[i]+" ");
		}
	}

}

氣泡排序

        氣泡排序:就是每趟從待排序的陣列中比較相鄰兩個數字的大小,將數字小的放在前面,數字大的放在後面;重複第一趟的操作,直到完成排序為止。

氣泡排序程式碼:

public class BubbleSort {

	public static void main(String[] args) {
		int[] myArray = {18,91,38,77,36,55,74,30,2,41};
		System.out.println("排序前的陣列為:");
		for(int i=0;i<myArray.length;i++) {
			System.out.print(myArray[i]+" ");
		}
		
		//氣泡排序演算法
		for(int i=0;i<myArray.length-1;i++) {
			for(int j=0;j<myArray.length-1-i;j++) {
				if(myArray[j]>myArray[j+1]) {
					int temp = myArray[j];
					myArray[j] = myArray[j+1];
					myArray[j+1] = temp;
				}
			}
		}
		System.out.println();
		System.out.println("排序後的陣列為:");
		for(int i=0;i<myArray.length;i++) {
			System.out.print(myArray[i]+" ");
		}
	}

}