數組排序---冒泡排序

* 數組排序—冒泡排序

  • 比較相鄰的兩個數,若按照順序排序,前面的數大於後面的數,則交換位置,第一輪過後最大的排在數組的最後面,經過n-1輪,完成排序

1.原理:比較兩個相鄰的元素,將值大的元素交換到右邊

2.思路:依次比較相鄰的兩個數,將比較小的數放在前面,比較大的數放在後面。

(1)第一次比較:首先比較第一和第二個數,將小數放在前面,將大數放在後面。

(2)比較第2和第3個數,將小數 放在前面,大數放在後面。

(3)如此繼續,知道比較到最後的兩個數,將小數放在前面,大數放在後面,重複步驟,直至全部排序完成

(4)在上面一趟比較完成後,最後一個數一定是數組中最大的一個數,所以在比較第二趟的時候,最後一個數是不參加比較的。

(5)在第二趟比較完成後,倒數第二個數也一定是數組中倒數第二大數,所以在第三趟的比較中,最後兩個數是不參與比較的。

(6)依次類推,每一趟比較次數減少依次


		/*
		 * 數組的排序:升序與降序,必須能夠比較大小  數值型   字符(ASCII碼值表)
		 */
		int as[] = {5,4,3,2,1};
		//升序    小到大
		for (int i = 0; i < as.length-1; i++) {//比較多少輪
			for (int j = 0; j < as.length-1-i; j++) {//比較每一輪的兩個數
				int a = as[j];	//數組第一數
				int b = as[j+1];//第二個數
				//交換位置
				if(a>b){
					int temp = as[j];
					as[j]=as[j+1];
					as[j+1] = temp;
					
				}
				//用加減法
//				if(a>b){
//					as[j]=as[j]+as[j+1];
//					as[j+1]=as[j]-as[j+1];
//					as[j]=as[j]-as[j+1];
//				}
			}
			
		}
		System.out.println(Arrays.toString(as));

在這裏插入圖片描述

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