冒泡排序算法的实现,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、结论

该算法过于简单,亲手做一遍,自然就会有自己的结论与感想。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章