冒泡排序Bubble Sort的PHP实现。代码中函数说明:

  • out_arr,用于将数组输出成一个字符串,以便查看
  • bubblesort,第一种实现方案,从后往前依次选出需要的值,这里是较大的
  • bubblesort2,第二种方案,从前往后一次选中需要的值,这里是最小的
  • range,产生一个1到20的数组
  • shuffle,打乱数组
    01
    function out_arr($arr) {
    02
    return implode(', ', $arr).'
    03
    ';
    04
    }
    05 06
    function bubblesort($arr) {
    07
    for ($i = 0; $i < count($arr) - 1; $i++ ) {
    08
    for($j = 0; $j < count($arr) - $i - 1; $j++ ) {
    09
    if( $arr[$j] > $arr[$j+1] ) {
    10
    $tmp = $arr[$j];
    11
    $arr[$j] = $arr[$j + 1];
    12
    $arr[$j + 1] = $tmp;
    13
    }
    14
    }
    15
    echo sprintf('%3d', $i).' : '.out_arr($arr);
    16
    }
    17
    }
    18 19 20
    function bubblesort2($array) {
    21
    $count = count($array);
    22
    for($i=0; $i<$count; $i++) {
    23
    for($j=$count-1; $j>$i; $j--) {
    24
    if ($array[$j] < $array[$j-1]) {
    25
    $tmp = $array[$j];
    26
    $array[$j] = $array[$j-1];
    27
    $array[$j-1] = $tmp;
    28
    }
    29
    }
    30
    echo sprintf('%3d', $i).' : '.out_arr($array);
    31
    }
    32
    return $array;
    33
    }
    34
    echo '<pre>';
    35
    $arr = range(1, 20);
    36
    shuffle($arr);
    37
    echo 'ORG : '.out_arr($arr);
    38
    bubblesort2($arr);
    39
    echo '</pre>';

      

冒泡排序Bubble Sort的PHP实现。代码中函数说明:

  • out_arr,用于将数组输出成一个字符串,以便查看
  • bubblesort,第一种实现方案,从后往前依次选出需要的值,这里是较大的
  • bubblesort2,第二种方案,从前往后一次选中需要的值,这里是最小的
  • range,产生一个1到20的数组
  • shuffle,打乱数组
01 function out_arr($arr) {
02     return implode(', ', $arr).'
03 ';
04 }
05  
06 function bubblesort($arr) {
07     for ($i = 0; $i < count($arr) - 1; $i++ ) {
08         for($j = 0; $j < count($arr) - $i - 1; $j++ ) {
09             if( $arr[$j] > $arr[$j+1] ) {
10                 $tmp = $arr[$j];
11                 $arr[$j] = $arr[$j + 1];
12                 $arr[$j + 1] = $tmp;
13             }
14         }
15         echo sprintf('%3d', $i).' : '.out_arr($arr);
16     }
17 }
18  
19  
20 function bubblesort2($array) {
21     $count = count($array);
22     for($i=0; $i<$count; $i++) {
23         for($j=$count-1; $j>$i; $j--) {
24             if ($array[$j] < $array[$j-1]) {
25                 $tmp = $array[$j];
26                 $array[$j] = $array[$j-1];
27                 $array[$j-1] = $tmp;
28             }
29         }
30         echo sprintf('%3d', $i).' : '.out_arr($array);
31     }
32     return $array;
33 }
34 echo '<pre>';
35 $arr = range(1, 20);
36 shuffle($arr);
37 echo 'ORG : '.out_arr($arr);
38 bubblesort2($arr);
39 echo '</pre>';

冒泡排序的PHP实现 Bubble Sort的更多相关文章

  1. 冒泡排序和选择排序(bubble sort and selection sort)

    Bubble sort Basic Method: import random nums = [random.randint(1,20) for _ in range(10)] #制作一个无序数字列表 ...

  2. Bubble Sort(冒泡排序)

    冒泡排序(英语:Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行 ...

  3. Java中的经典算法之冒泡排序(Bubble Sort)

    Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一 ...

  4. HDU 5775 Bubble Sort(冒泡排序)

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  5. 冒泡排序(Bubble Sort)

    常见的排序算法有Bubble Sort.Merge Sort.Quick Sort 等,所有排序算的基本法思想都是把一个无限大的数据规模通过算法一步步缩小,指导最后完成排序. 这里分享一下Buuble ...

  6. [算法] 冒泡排序 Bubble Sort

    冒泡排序(Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没 ...

  7. c++算法联系,冒泡排序,bubble sort,插入排序,insert sort,

    #include <iostream.h> #define  MAX 100 void dispaly(int a[],int n) {     for(int i=0;i<n;i+ ...

  8. java排序算法之冒泡排序(Bubble Sort)

    java排序算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数 ...

  9. 排序算法 (sorting algorithm)之 冒泡排序(bubble sort)

    http://www.algolist.net/Algorithms/ https://docs.oracle.com/javase/tutorial/collections/algorithms/ ...

随机推荐

  1. PAT 1067. 试密码(20)

    当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死.本题就请你实现这个小功能. 输入格式: 输入在第一行给出一个密码(长度不超过20的.不包含空格.Ta ...

  2. 实验一中的OOP思想

    子类继承父类    父类中声明了接口变量   接口AB中声明了抽象方法 ab 在子类中 可以用这样通俗的语句写程序: while (!(this.termination.shouldTerminate ...

  3. sql server扫盲系列

    本系列为入门级,不会介绍过于深入的知识.为防止不道德转载(特别是红黑联盟,把我原文地址删掉,其他照搬,无节操无道德),尽可能打上水印和加上原文地址,读者看的不爽请见谅.原文地址:http://blog ...

  4. linux虚拟机能ping通windows主机,windows主机ping不通linux虚拟机的解决办法

    分三步: 1.虚拟机网络连接方式选择Nat

  5. NPOI导出excel表格应用

    最近接到一个需求,在原有系统上做二次开发 ,要求导出DataGridView数据到Excel表格中.要求如下: 兼容所有excel版本: 导出后excel各列的样式,字段类型不变. 成型如下:

  6. uwsgi+nginx项目上线

    一.基础环境配置 1.Linux安装配置     1.设置IP地址 [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 ...

  7. LeetCode:二进制求和【67】

    LeetCode:二进制求和[67] 题目描述 给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11" ...

  8. OpenGL学习进程(8)第六课:点、边和图形(三)绘制图形

    本节是OpenGL学习的第六个课时,下面介绍OpenGL图形的相关知识:     (1)多边形的概念: 多边形是由多条线段首尾相连而形成的闭合区域.OpenGL规定,一个多边形必须是一个“凸多边形”. ...

  9. nginx负载均衡详情

    负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...

  10. copy deepcopy辨析

    copy deepcopy讲的是复制源对象的改变对copy出来的对象的影响: 我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在. 所以改变原有被复制对象不会对已经复制 ...