首页 > 编程语言 >PHP实现冒泡排序

PHP实现冒泡排序

时间:2023-07-18 15:33:32浏览次数:26  
标签:arr temp 实现 elemType 元素 冒泡排序 int numbers PHP

冒泡排序的原理:

1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

【C语言实现】#include <stdio.h>
#define ARR_LEN 255 /*数组长度上限*/ #define elemType int /*元素类型*/ /* 冒泡排序 */ /* 1. 从当前元素起,向后依次比较每一对相邻元素,若逆序则交换 */ /* 2. 对所有元素均重复以上步骤,直至最后一个元素 */ /* elemType arr[]: 排序目标数组; int len: 元素个数 */ void bubbleSort (elemType arr[], int len) { elemType temp; int i, j; for (i=0; i<len-1; i++) /* 外循环为排序趟数,len个数进行len-1趟 */ for (j=0; j<len-1-i; j++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */ if (arr[j] > arr[j+1]) { /* 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } int main (void) { elemType arr[ARR_LEN] = {3,5,1,-7,4,9,-6,8,10,4}; int len = 10; int i; bubbleSort (arr, len); for (i=0; i<len; i++) printf ("%d\t", arr[i]); putchar ('\n'); return 0;
}


【PHP实现】
function bubbleSort($numbers) {
    $cnt = count($numbers);
    for ($i = 0; $i < $cnt - 1; $i++) {
        for ($j = 0; $j < $cnt - $i - 1; $j++) {
            if ($numbers[$j] > $numbers[$j + 1]) {
                $temp = $numbers[$j];
                $numbers[$j] = $numbers[$j + 1];
                $numbers[$j + 1] = $temp;
            }
        }
    }

    return $numbers;
}

$num = array(20, 40, 60, 80, 30, 70, 90, 10, 50, 0);
var_dump(bubbleSort($num));

 

 

 

标签:arr,temp,实现,elemType,元素,冒泡排序,int,numbers,PHP
From: https://www.cnblogs.com/haoxuanchen2014/p/17563162.html

相关文章

  • SSM整合--表现层与前端数据传输数据协议实现
      把所有数据都包装成Result  ......
  • 新手学php之字符串变量表述与运算
    ​<?php$txt="Hello world!";echo $txt;?>PHP中的字符串变量字符串变量用于包含有字符的值。在创建字符串之后,我们就可以对它进行操作了。您可以直接在函数中使用字符串,或者把它存储在变量中。在下面的实例中,我们创建一个名为txt的字符串变量,并赋值为"Helloworld!"......
  • 低代码框架开发:轻松掌握实现流程化管理的诀窍!
    实现流程化管理,已经是当前很多企业的真实想法和发展趋势。毕竟这能帮助企业快速提升办公协同效率,实现提质增效又降本的发展目标。那么,应用什么平台可以让广大用户实现这一目的?利用低代码框架开发平台,可以让大家轻松实现流程化管理,还能在数字化转型的道路上畅快前行。1、低代码框......
  • php实现站群软件权限管理功能示例
    1.管理员页面RBAC.php<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>权限管理</title><scriptsrc="bootstrap/js/jquery-1.11.2.min.js"></script></head><body>......
  • php位运算实现网站权限管理的方法
    ​首先我们先定义4个常量来设定四种权限:=====================================define(ADD,1);//增加数据库记录的权限define(UPD,2);//修改数据库记录的权限define(SEL,4);//查找数据库记录的权限define(DEL,8);//删除数据库记录的权限==================================......
  • Qt实现学生成绩管理系统[2023-07-18]
    Qt实现学生成绩管理系统[2023-07-18]包括登陆用户识别判定(学生登陆只能查询成绩,而管理员登陆可以查询、修改、删除、增添成绩)学生成绩的录入(学生姓名、学生学号、学生专业、学生班级、学生成绩)学生成绩的查找、筛选、排序(特定查找个人、成绩从高到低显示、小于六十分的不及格筛......
  • 用 Golang 从0到1实现一个高性能的 Worker Pool(一) - 每天5分钟玩转 GPT 编程系列(3)
    目录1.概述2.设计2.1让GPT-4给出功能点2.2自己总结需求,再给GPT派活3.实现3.1你先随意发挥3.2你得让Worker跑起来呀3.3你说说Pool满了怎么办3.4你得把UT给我加上3.5你再给我把文档补上4.总结1.概述话说,早几天一口气过了一遍Golang的并发机制:跟着GPT-4......
  • php做网页版剪刀石头布的功能
    实例讲述了php实现的网页版剪刀石头布攻略在玩游网上的设计。分享给大家供大家参考,具体如下:<?php/**Createdon2016-11-25**/if(isset($_POST['sub'])){$what=$_POST['what'];//需要输入的数组$my_array=array("剪刀","石头","布");//获胜规则$guize=a......
  • c++环形队列的简单实现
    环形队列可以通过维护count来间接维护tail和head指针的关系,简化程序,避免了直接使用tail和head指针,读写时head与tail回环时的比较处理,判断队列元素长度时的复杂处理,如下为不基于count而是直接使用head和tail指针比较的环形队列的实现,逻辑较为复杂uint32_tCAudioRingBuffer::Da......
  • C#中可以通过管道流实现多线程之间数据交换
    //Console.WriteLine("=======创建线程=========");//ServerThreadserverThreadInstance=newServerThread(pipeName);//ThreadserverThread=newThread(newThreadStart(serverThreadInstance.run));//serverThread.Start();......