zoukankan      html  css  js  c++  java
  • 冒泡排序x

    首先了解一下什么是冒泡排序:

    冒泡排序(Bubble Sort),是一种计算机领域的较简单的算法。
    它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
    这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。
    算法原理:
    冒泡排序算法的运作如下:(从后往前)
    1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    3. 针对所有的元素重复以上的步骤,除了最后一个。
    4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

    下面是几种算法,因为现在还没学到PHP C语言之类算法,所以先把JAVASCRIPT写在前面 后面几种因为没学 就临时粘贴复制一下了,可能会有错误  希望不要介意:

    JS冒泡排序:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>冒泡排序</title>
        </head>
        <body>
            
        </body>
    </html>
    <script>
    var arr=[3,5,4,1,2,7,9];
    for (var i=0;i<arr.length;i++){
    for(var j=i+1;j<arr.length;j++){
    if(arr[i]>arr[j]){
    var temp;
    temp=arr[i];
    arr[i]=arr[j];
    arr[j]=temp;}
    }
    }
    forvar x in arr){
    alert(arr[x])
    }
    </script>

    还有从网上找到的一个JS的  算法其实差不多 如下:

    function bubbleSort(arr) {
        var i = arr.length, j;
        var tempExchangVal;
        while (i > 0) {
            for (j = 0; j < i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    tempExchangVal = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = tempExchangVal;
                }
            }
            i--;
        }
        return arr;
    }
     
    var arr = [3, 2, 4, 9, 1, 5, 7, 6, 8];
    var arrSorted = bubbleSort(arr);
    console.log(arrSorted);
    alert(arrSorted);

    剩下的就真的只能粘贴了 无能为力主要还没开始学PHP  自学C语言也只是刚刚开始 就先留着:

    JAVA

     1 public class BubbleSort
     2 {
     3     public void sort(int[] a)
     4     {
     5         int temp = 0;
     6         for (int i = a.length - 1; i > 0; --i)
     7         {
     8             for (int j = 0; j < i; ++j)
     9             {
    10                 if (a[j + 1] < a[j])
    11                 {
    12                     temp = a[j];
    13                     a[j] = a[j + 1];
    14                     a[j + 1] = temp;
    15                 }
    16             }
    17         }
    18     }
    19 }

    PHP

     1 function bubbleSort($numbers) {
     2     $cnt = count($numbers);
     3     for ($i = 0; $i < $cnt; $i++) {
     4         for ($j = 0; $j < $cnt - $i - 1; $j++) {
     5             if ($numbers[$j] > $numbers[$j + 1]) {
     6                 $temp = $numbers[$j];
     7                 $numbers[$j] = $numbers[$j + 1];
     8                 $numbers[$j + 1] = $temp;
     9             }
    10         }
    11     }
    12  
    13     return $numbers;
    14 }
    15  
    16 $num = array(20, 40, 60, 80, 30, 70, 90, 10, 50, 0);
    17 var_dump(bubbleSort($num));
    18  
    19 //输出结果如下:
    20 //array(10) {
    21 //  [0]=>
    22 //  int(0)
    23 //  [1]=>
    24 //  int(10)
    25 //  [2]=>
    26 //  int(20)
    27 //  [3]=>
    28 //  int(30)
    29 //  [4]=>
    30 //  int(40)
    31 //  [5]=>
    32 //  int(50)
    33 //  [6]=>
    34 //  int(60)
    35 //  [7]=>
    36 //  int(70)
    37 //  [8]=>
    38 //  int(80)
    39 //  [9]=>
    40 //  int(90)
    41 //}

    貌似还有比较常见的C语言的

    C语言:

     1 #include <stdio.h>
     2 #define SIZE 8
     3  
     4 void bubble_sort(int a[], int n);
     5  
     6 void bubble_sort(int a[], int n)
     7 {
     8     int i, j, temp;
     9     for (j = 0; j < n - 1; j++)
    10         for (i = 0; i < n - 1 - j; i++)
    11         {
    12             if(a[i] > a[i + 1])
    13             {
    14                 temp = a[i];
    15                 a[i] = a[i + 1];
    16                 a[i + 1] = temp;
    17             }
    18         }
    19 }
    20  
    21 int main()
    22 {
    23     int number[SIZE] = {95, 45, 15, 78, 84, 51, 24, 12};
    24     int i;
    25     bubble_sort(number, SIZE);
    26     for (i = 0; i < SIZE; i++)
    27     {
    28         printf("%d", number[i]);
    29     }
    30     printf("
    ");
    31 }
  • 相关阅读:
    TestNG+maven+idea 环境基本使用
    linux基本命令
    linux -查看cpu 内存 磁盘 端口 进程
    Scanner类、Random类、ArrayList 类
    (四)面向对象
    (三)数组
    (二)流程-循环
    (一)java基础_常量+变量+数据类型+运算符+方法
    SQL (二)
    SQL(一)
  • 原文地址:https://www.cnblogs.com/xieyunhuaxiang/p/6759242.html
Copyright © 2011-2022 走看看