三大基本排序:選擇、冒泡、插入

(示例代碼的最終結果使得數列將按升序存放)

1. 選擇排序

選擇一個位置,在該趟循環中將參與比較的數的極值放到該位置上,最後使得整個數列中的數按某一順序存放。

具體如下:

        public static void select( int[] nums ){
		int temp = 0;
		for( int i=0; i<nums.length-1; i++ ){
			for( int j=i+1; j<nums.length; j++ ){
				if( nums[i]>nums[j] ){
					temp = nums[i];
					nums[i] = nums[j];
					nums[j] = temp;
				}
			}
		}
	}

程序第5行,則爲選擇排序的核心:在該趟循環中,取出參與比較的數的極值並放在 [i] 中。爲達目的,將餘下的所有數與[i]中的值進行比較,並根據條件交換其值。


2. 冒泡排序

在某一趟循環中,將仍處於無序狀態的並且在位置上相鄰的數據兩兩依次進行比較,並按條件交換其值得到極值,並把極值放在一端,最終使得整個數列有序。

具體如下:

        public static void bub( int[] nums ){
		int temp = 0;
		for( int i=0; i<nums.length-1; i++ ){
			for( int j=0; j<nums.length-1-i; j++ ){
				if( nums[j]>nums[j+1] ){
					temp = nums[j];
					nums[j] = nums[j+1];
					nums[j+1] = temp;
				}
			}
		}
	}

程序第5行,爲選擇排序的核心:將處於無序狀態的數兩兩依次進行比較,並根據條件交換其值。


3,插入排序

將處於無序狀態的數依次插入到一個有序的數列當中,最後使得整個數列中的數按某一順序存放。

具體如下:

        public static void insert( int[] nums ){
		int temp = 0;
		for( int i=1; i<nums.length; i++ ){
			for( int j=i; j>0; j-- ){
				if( nums[j] < nums[j-1] ){
					temp = nums[j];
					nums[j] = nums[j-1];
					nums[j-1]=temp;
				}
			}
		}
	}

程序第4行表示,將第i個與 前面已排好序的數進行比較,找到其需要插入到的最終位置,並將其插入進去,再使得後面已處於有序的數列整體右移(但在此通過冒泡排序的方式使得這樣一個數列整體右移)。


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