氣泡排序程式碼實現
阿新 • • 發佈:2018-12-05
氣泡排序程式碼實現
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); }