[javaSE] 数组(排序-冒泡排序)
生活随笔
收集整理的這篇文章主要介紹了
[javaSE] 数组(排序-冒泡排序)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
兩層嵌套循環,外層控制循環次數,內層循環進行比較
for(int x=0;x<arr.length-1;x++){for(int y=0;y<arr.length;y++){if(arr[y]>arr[y+1]){}}}?
此時的代碼有問題,內層循環多比較了已經排好序的部分,都在最后面,需要去掉
for(int x=0;x<arr.length-1;x++){for(int y=0;y<arr.length-x;y++){if(arr[y]>arr[y+1]){}}}?
此時的代碼有問題,內層循環最后一個元素,無法和它后面的比較,應該去掉
for(int x=0;x<arr.length-1;x++){for(int y=0;y<arr.length-x-1;y++){if(arr[y]>arr[y+1]){}}}?
?
判斷完后,兩個變量交換位置,利用第三方變量
for(int x=0;x<arr.length-1;x++){for(int y=0;y<arr.length-x-1;y++){if(arr[y]>arr[y+1]){int temp=arr[y];arr[y]=arr[y+1];arr[y+1]=temp;}}}?
java版:
public class ArrayDemo {/*** @param args*/public static void main(String[] args) {int[] arr=new int[]{2,5,4,1};int[] newArr=bubbleSort(arr);for(int x:newArr){System.out.print(x);}}/*** 冒泡排序(正序)* @param arr* @return*/public static int[] bubbleSort(int[] arr){for(int x=0;x<arr.length-1;x++){for(int y=0;y<arr.length-x-1;y++){if(arr[y]>arr[y+1]){int temp=arr[y];arr[y]=arr[y+1];arr[y+1]=temp;}}}return arr;} }PHP版:
<?php class ArrayDemo{public static function main(){$arr=array(2,5,4,1);print_r(ArrayDemo::bubbleSort($arr));//輸出 Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 ) }/*** 冒泡排序(正序)* @param arr* @return*/public static function bubbleSort($arr){for($x=0;$x<count($arr)-1;$x++){for($y=0;$y<count($arr)-$x-1;$y++){if($arr[$y]>$arr[$y+1]){$temp=$arr[$y];$arr[$y]=$arr[$y+1];$arr[$y+1]=$temp;}}}return $arr;}}ArrayDemo::main();?
?
選擇排序和冒泡排序性能都很低,提高性能的方法,當需要換位置的時候,先不換,先把需要換位置的角標放到棧內存中,等最后一次性在堆內存中交換
排序中最快的是 希爾排序
總結
以上是生活随笔為你收集整理的[javaSE] 数组(排序-冒泡排序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搭建 Hadoop2.7.2 + Spa
- 下一篇: Three.js学习笔记