电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

PHP四種基本排序算法示例

瀏覽:5日期:2022-09-13 08:35:47

許多人都說算法是程序的核心,算法的好壞決定了程序的質量。作為一個初學者,雖然很少接觸到算法方面的東西。但是對于基本的排序算法還是應該掌握的,它是程序開發的必備工具。

1. 冒泡排序

思路分析:在要排序的一組數中,對當前還未排好的序列,從前往后對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即,每當兩相鄰的數比較后發現它們的排序與排序要求相反時,就將它們互換。

代碼實現:

$arr=array(1,43,54,62,21,66,32,78,36,76,39);function bubbleSort($arr){$len=count($arr);//該層循環控制 需要冒泡的輪數for($i=1;$i<$len;$i++){ //該層循環用來控制每輪 冒出一個數 需要比較的次數for($k=0;$k<$len-$i;$k++){if($arr[$k]>$arr[$k+1]){$tmp=$arr[$k+1];$arr[$k+1]=$arr[$k];$arr[$k]=$tmp;}}}return $arr;}

2. 選擇排序

思路分析:在要排序的一組數中,選出最小的一個數與第一個位置的數交換。然后在剩下的數當中再找最小的與第二個位置的數交換,如此循環到倒數第二個數和最后一個數比較為止。

代碼實現:

function selectSort($arr) {//雙重循環完成,外層控制輪數,內層控制比較次數$len=count($arr);for($i=0; $i<$len-1; $i++) {//先假設最小的值的位置$p = $i;for($j=$i+1; $j<$len; $j++) {//$arr[$p] 是當前已知的最小值if($arr[$p] > $arr[$j]) {//比較,發現更小的,記錄下最小值的位置;并且在下次比較時采用已知的最小值進行比較。$p = $j;}}//已經確定了當前的最小值的位置,保存到$p中。如果發現最小值的位置與當前假設的位置$i不同,則位置互換即可。if($p != $i) {$tmp = $arr[$p];$arr[$p] = $arr[$i];$arr[$i] = $tmp;}}//返回最終結果return $arr;}

3.插入排序

思路分析:在要排序的一組數中,假設前面的數已經是排好順序的,現在要把第n個數插到前面的有序數中,使得這n個數也是排好順序的。如此反復循環,直到全部排好順序。

代碼實現:

function insertSort($arr) {$len=count($arr);for($i=1, $i<$len; $i++) {$tmp = $arr[$i];//內層循環控制,比較并插入for($j=$i-1;$j>=0;$j--) {if($tmp < $arr[$j]) {//發現插入的元素要小,交換位置,將后邊的元素與前面的元素互換$arr[$j+1] = $arr[$j];$arr[$j] = $tmp;} else {//如果碰到不需要移動的元素,由于是已經排序好是數組,則前面的就不需要再次比較了。break;}}}return $arr;}

4.快速排序

思路分析:選擇一個基準元素,通常選擇第一個元素或者最后一個元素。通過一趟掃描,將待排序列分成兩部分,一部分比基準元素小,一部分大于等于基準元素。此時基準元素在其排好序后的正確位置,然后再用同樣的方法遞歸地排序劃分的兩部分。

代碼實現:

function quickSort($arr) {//先判斷是否需要繼續進行$length = count($arr);if($length <= 1) {return $arr;}//選擇第一個元素作為基準$base_num = $arr[0];//遍歷除了標尺外的所有元素,按照大小關系放入兩個數組內//初始化兩個數組$left_array = array(); //小于基準的$right_array = array(); //大于基準的for($i=1; $i<$length; $i++) {if($base_num > $arr[$i]) {//放入左邊數組$left_array[] = $arr[$i];} else {//放入右邊$right_array[] = $arr[$i];}}//再分別對左邊和右邊的數組進行相同的排序處理方式遞歸調用這個函數$left_array = quick_sort($left_array);$right_array = quick_sort($right_array);//合并return array_merge($left_array, array($base_num), $right_array);}

標簽: PHP
相關文章:
主站蜘蛛池模板: 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 123悬赏网_发布悬赏任务_广告任务平台 | 周易算网-八字测算网 - 周易算网-宝宝起名取名测名字周易八字测算网 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 | 无锡网站建设_企业网站定制-网站制作公司-阿凡达网络 | 油罐车_加油机_加油卷盘_加油机卷盘_罐车人孔盖_各类球阀_海底阀等车用配件厂家-湖北华特专用设备有限公司 | 【黄页88网】-B2B电子商务平台,b2b平台免费发布信息网 | 合肥网络推广_合肥SEO网站优化-安徽沃龙First | 土壤墒情监测站_土壤墒情监测仪_土壤墒情监测系统_管式土壤墒情站-山东风途物联网 | 国产离子色谱仪,红外分光测油仪,自动烟尘烟气测试仪-青岛埃仑通用科技有限公司 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | uv机-uv灯-uvled光固化机-生产厂家-蓝盾机电 | 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | 寮步纸箱厂_东莞纸箱厂 _东莞纸箱加工厂-东莞市寮步恒辉纸制品厂 | 滤芯,过滤器,滤油机,贺德克滤芯,精密滤芯_新乡市宇清流体净化技术有限公司 | 山东商品混凝土搅拌楼-环保型搅拌站-拌合站-分体仓-搅拌机厂家-天宇 | 康明斯发电机,上柴柴油发电机,玉柴柴油发电机组_海南重康电力官网 | 暖气片十大品牌厂家_铜铝复合暖气片厂家_暖气片什么牌子好_欣鑫达散热器 | 汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司 | 耐酸泵,耐腐蚀真空泵,耐酸真空泵-淄博华舜耐腐蚀真空泵有限公司 精密模具-双色注塑模具加工-深圳铭洋宇通 | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 选矿设备-新型重选设备-金属矿尾矿重选-青州冠诚重工机械有限公司 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 | 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 | 浩方智通 - 防关联浏览器 - 跨境电商浏览器 - 云雀浏览器 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 | 国际金融网_每日财经新资讯网| 行业分析:提及郑州火车站附近真有 特殊按摩 ?2025实地踩坑指南 新手如何避坑不踩雷 | 进口消泡剂-道康宁消泡剂-陶氏消泡剂-大洋消泡剂 | 高压微雾加湿器_工业加湿器_温室喷雾-昌润空气净化设备 | 立式硫化罐-劳保用品硫化罐-厂家直销-山东鑫泰鑫硫化罐厂家 | 「钾冰晶石」氟铝酸钾_冰晶石_氟铝酸钠「价格用途」-亚铝氟化物厂家 | 农业仪器网 - 中国自动化农业仪器信息交流平台 | 上海律师咨询_上海法律在线咨询免费_找对口律师上策法网-策法网 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 安规电容|薄膜电容|陶瓷电容|智旭JEC安规电容厂家 |