1. 程式人生 > >氣泡排序程式碼實現

氣泡排序程式碼實現

氣泡排序程式碼實現

1.手寫冒泡

    		//遍歷陣列中每一個元素
    		for(int i=0;i<arr.length;i++){
    			//每遍歷完一個元素,就會確定出當前遍歷這個陣列長度中一個最值,下一次遍歷就不需要考慮
    			for(int j=0;j<arr.length-1-i;j++){
    				//如果前一個數比後一個數大,我們就跟這兩個元素做值交換
	    			if(arr[i]>arr[i+1]){
	    				int s=arr[i];
	    				arr[i]=arr[i+1];
	    				arr[i+1]=s;
	    			}
	    		}
    		}
    		//至此迴圈結束,我們得到一個正序排序的陣列

2.遞迴冒泡

public static int[] fun(int[] arr,int length){
		//得到一個亂序的陣列以及要便利的範圍
		for(int i=0;i<length-1;i++){
			//如果前一個數比後一個數大,我們就跟這兩個元素做值交換
			if(arr[i]>arr[i+1]){
				int s=arr[i];
				arr[i]=arr[i+1];
				arr[i+1]=s;
			}
		}
		//當length為1的時候說明遍歷已經結束,直接返回結果
		if(length==1){
			return arr;
		}
		//進行下一次遍歷,此時已經確定最後一個值為當前遍歷這個陣列長度中一個最值,下次迴圈不予考慮
		return fun(arr,length-1);
	}