冒泡排序算法的實現,Java實現冒泡排序算法、PHP實現冒泡排序算法

1、什麼是冒泡排序算法

冒泡排序算法是一種比較簡單的排序算法,上學時候的老是都應該講過該經典算法。
它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序(如從大到小、首字母從Z到A)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。

這個算法的名字由來是因爲越小的元素會經由交換慢慢“浮”到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名“冒泡排序”。

2、算法的輸入與輸出

算法輸入:大小無序的一維數組
算法輸出:從小到大排序的一維素組

3、算法思想

持續的跟相鄰的元素比較大小,如果符合條件,則交換位置

4、實現過程

Java實現:

    private static int[] algorithmBody(int[] data){
//       獲取數組長度
        int dataLength = data.length;
        for (int i = 1; i < dataLength; i++) {
            for (int j = 0; j < dataLength; j++) {
                if(data[j] > data[i]){
                    int temp = data[i];
                    data[i] = data[j];
                    data[j] = temp;
                }
            }
        }
        return data;
    }

調用驗證:

 public static void main(String[] args) {
        System.out.println("冒泡排序算法");
        int testData[] = {1,5,7,8,4,2,3,6,9};
        for (int i = 0; i < testData.length; i++) {
            System.out.print(testData[i]);
        }
        System.out.println("");
        int[] result = BubbleSort.algorithmBody(testData);
        for (int i = 0; i < result.length; i++) {
            System.out.print(result[i]);
        }
    }

PHP實現

function BubbleSort(array $container)
{
    $count = count($container);
    for ($j = 1; $j < $count; $j++) {
        for ($i = 0; $i < $count - $j; $i++) {
            if ($container[$i] > $container[$i + 1]) {
                $temp = $container[$i];
                $container[$i] = $container[$i + 1];
                $container[$i + 1] = $temp;
            }
        }
    }
    return $container;
}

調用驗證:

var_dump(BubbleSort([4, 21, 41, 2, 53, 1, 213, 31, 21, 423]));

Javascript實現


  //從小到大
  function BubbleSort(arr){
      var i,j,temp;
      for(i=0;i<arr.length-1;i++){
          for(j=i+1;j<arr.length;j++){
              if(arr[i]>arr[j]){
                  temp=arr[j];
                  arr[j]=arr[i];
                  arr[i]=temp;
             }
         }
     }
     return arr;
 }

5、結論

該算法過於簡單,親手做一遍,自然就會有自己的結論與感想。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章