首页 > 编程语言 >算法题:冒泡排序

算法题:冒泡排序

时间:2023-06-12 22:35:56浏览次数:42  
标签:arr temp 元素 冒泡排序 算法 len 数组

function bubbleSort($arr) {
    $len = count($arr);   // 获取要排序数组的长度
    for ($i = 0; $i < $len; $i++) {    // 外层循环遍历整个数组
        for ($j = 0; $j < $len - $i - 1; $j++) {  // 内层循环用于比较相邻元素,次数随外层循环进行而减少
            if ($arr[$j] > $arr[$j+1]) {   // 比较相邻元素,如果前一个大于后一个,则交换它们的位置
                // 相邻元素交换位置
                $temp = $arr[$j];   // 将前一个元素存入临时变量 $temp
                $arr[$j] = $arr[$j+1];  // 将后一个元素赋值给前一个元素
                $arr[$j+1] = $temp;  // 将 $temp 中存储的前一个元素赋值给后一个元素
            }
        }
    }
    return $arr;  // 返回排好序的数组
}

//示例
$arr = [3, 1, 6, 2, 9, 5];  // 定义要排序的数组
$result = bubbleSort($arr);  // 将数组传入冒泡排序函数
print_r($result);  // 输出排序后的结果

结果:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 5
    [4] => 6
    [5] => 9
)

标签:arr,temp,元素,冒泡排序,算法,len,数组
From: https://www.cnblogs.com/wordblog/p/17476268.html

相关文章

  • 代码随想录算法训练营第五天| 242.有效的字母异位词 , 349. 两个数组的交集 , 202. 快
    242.有效的字母异位词 繁冗版:1,思路:先建立两个map,对应两个字符串对应的字符,同时对他们进行计数,如果这两个数字相等,那么就是相等2,代码1boolisAnagram_complicate(strings,stringt)2{3unordered_map<char,int>existedCharBys;45for(autoch......
  • 文心一言 VS 讯飞星火 VS chatgpt (39)-- 算法导论5.4 3题
    三、在生日悖论的分析中,要求各人生日彼此独立是否很重要?或者,是否只要两两成对独立就足够了?证明你的答案。文心一言:在生日悖论的分析中,要求各人生日彼此独立是非常重要的。这是因为,如果各人生日不是独立的,而是存在一定的相关性,那么就会影响到概率的计算,从而影响到生日悖论的分析结......
  • ‘极锐’-一种新的锐化算法
    通过一种新的增强算法对图像进行处理,得到细节增强的锐化效果,分析处理效果,edge清楚,detail细腻,artifact较少,适合多场景图像处理,处理速度较快,能够满足实时化处理。暂时命名为极锐,简单易理解的名字,后续再优化。效果展示原图:中强度锐化效果图:高强度锐化效果图:测试程序matlab测......
  • 恺撒密码 && IDA识别算法
    恺撒密码&&IDA识别算法恺撒密码原理恺撒密码,又称恺撒加密、恺撒变换、变换加密。它是一种替换加密的技术。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文当偏移量为3时,所有的字母A会被替换成D,字母B会被替换成E,以此类推。特定恺撒密......
  • 文心一言 VS 讯飞星火 VS chatgpt (39)-- 算法导论5.4 3题
    三、在生日悖论的分析中,要求各人生日彼此独立是否很重要?或者,是否只要两两成对独立就足够了?证明你的答案。文心一言:在生日悖论的分析中,要求各人生日彼此独立是非常重要的。这是因为,如果各人生日不是独立的,而是存在一定的相关性,那么就会影响到概率的计算,从而影响到生日悖论的分......
  • RC4算法原理 && IDA识别RC4算法
    RC4算法原理&&IDA识别RC4算法RC4简介&&对称密码介绍在密码学中,RC4是一种流加密算法,密钥长度可变。加解密使用相同的密钥,隶属于对称加密算法。流密码属于对称密码算法一种,基本特征是加解密双方使用一串与明文长度相同的密钥流,与明文流组合来进行加解密密钥流通常是由某一确......
  • 【算法基础】:(二)希尔排序
    java基础算法算法基础:开始回顾下基础算法中的经典排序算法希尔排序是插入排序的一种算法思想:希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至一时,整个文件恰被分成一组,算法便终止。重点是分组,然后排序......
  • 【算法基础】:(三)插入排序
    java基础算法算法基础:开始回顾下基础算法中的经典排序算法插入排序算法思想:一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过......
  • 【算法基础】:(四)选择排序
    java基础算法算法基础:开始回顾下基础算法中的经典排序算法选择排序是插入排序的一种算法思想:选择排序在开始的时候,先扫描整个列表,以找到列表中的最小元素,然后将这个元素与第一个元素进行交换。这样最小元素就放到它的最终位置上。然后,从第二个元素开始扫描,找到n-1个元素中的最小......
  • 算法:丑数
    题目描述编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数2,3,5的正整数。示例1:输入:6输出:true解释:6=2×3示例2:输入:8输出:true解释:8=2×2×2示例3:输入:14输出:false解释:14不是丑数,因为它包含了另外一个质......