<?php
//冒泡排序<从小到大>
function bubbleSort(&$arr){
$temp=0;
//加入第i个数最大
for($i=0;$i<count($arr)-1;$i++){
for($j=0;$j<count($arr)-1-$i;$j++){
//说明前面的数比后面的数大,就要交换
if($arr[$j] > $arr[$j+1]){
$temp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
}
}
}
}
//选择排序<从小到大>
function selectSort(&$arr){
$temp=0;
for($i=0;$i<count($arr);$i++){
//假设$i就是最小的数
$minValue=$arr[$i];
//记录我认为最小数的下标
$minIndex=$i;
for($j=$i+1;$j<count($arr);$j++){
//我们认为的最小值,不是最小
if($minValue>$arr[$j]){
$minValue=$arr[$j];
$minIndex=$j;
}
}
//最后交换
$temp=$arr[$i];
$arr[$i]=$arr[$minIndex];
$arr[$minIndex]=$temp;
}
}
//插入排序法<从小到大>
function insertSort(&$arr){
for($i=1;$i<count($arr);$i++){
//$insertVal是准备插入的数
$insertValue=$arr[$i];
//准备先和$insertIndex比较
$insertIndex=$i-1;
//如果这个条件满足,说明,我们还没有找到适当的位置
while($insertIndex>=0 && $insertValue < $arr[$insertIndex]){
//同时把数后移
$arr[$insertIndex+1]=$arr[$insertIndex];
$insertIndex--;
}
//插入(这时给$insertValue找到适合位置)
$arr[$insertIndex+1]=$insertValue;
}
}
$arr = Array(0,-1,5);
//冒泡排序法
//bubbleSort($arr);
//选择排序法
//selectSort($arr);
//插入排序法
insertSort($arr);
print_r($arr);
//速度
//插入排序法 >> 选择排序法 >> 冒泡排序法
?>
分享到:
相关推荐
PHP的四种基本排序算法为:冒泡排序、插入排序、选择排序和快速排序。 下面是我整理出来的算法代码: 1. 冒泡排序: 思路:对数组进行多轮冒泡,每一轮对数组中的元素两两比较,调整位置,冒出一个最大的数来。 //...
利用python,JavaScript,java,go,PHP等实现: 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 计数排序 桶排序 基数排序
php排序,冒泡排序,快速排序,插入排序,选择排序
php排序 ,插入排序,选择排序,冒泡排序,快速排序。 整理出来,供大家参考一下
主要介绍了PHP常用排序算法,结合实例形式总结分析了php常见的排序算法,包括基本排序、冒泡排序、快速排序、插入排序等,需要的朋友可以参考下
十大经典排序算法 (1)多种编程语言,JavaScript,python,go,php等语言。 (2)排序算法可以分为内部排序...常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序
经典的冒泡排序、插入排序、选择排序、希尔排序和快速排序算法的PHP实现版
PHP实现各种排序算法 // 冒泡排序 // 交换法排序 // 选择法排序 // 插入法排序 // 快速排序 ……
PHP中的几种排序算法 一、 开发环境 1、环境搭建:Windows 7+Apache 2.4.18+MySQL 5.7.11+PHP 7.1.0。...本案例主要使用PHP 7中的几种排序算法:快速排序、选择排序、插入排序、冒泡排序、归并排序来实现排序的功能。
php实现的几种排序方法,包括插入排序,选择排序,冒泡排序、快速排序
PHP的排序(内部排序法:1.冒泡排序 2.插入排序 3.选择排序 4.快速排序)和查找方法(1.顺序查找 2.二分查找)
外部排序(因数据量大,需借助外部存储进行排序):包括合并排序、直接合并排序 【冒泡排序:从后向前,依次比较相邻元素的排序码,若发现逆序则交换,一轮结束后,再来一轮,直到所有相邻数无逆序,即按顺序排完】 ...
1) 插入排序(Insertion Sort)的基本思想是: 每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。 2) 选择排序(Selection Sort)的基本思想是: 每一趟...
前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序。 $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序 思路分析:在要排序的一组数中,对当前还未排好...
│ │ ├── BubbleSort.php 冒泡排序 │ │ ├── HeapSort.php 堆排序 大根堆 │ │ ├── MBaseSort.php 基数排序 MSD │ │ ├── LBaseSort.php 基数排序 LSD │ │ ├── QuickSort.php 快速排序 │ │ ...
主要介绍了php实现的常见排序算法汇总,包括插入排序、选择排序、冒泡排序、快速排序、归并排序与堆排序,并附有对排序算法的详细说明,需要的朋友可以参考下
希尔排序是指记录按下标的一定增量分组,对每一组使用 直接插入排序 ,随着增量逐渐减少,每组包含的关键字越来越多,当增量减少至 1 时,整个序列恰好被分成一组,算法便终止。 操作步骤: 先取一个小于 n(序列...
插入排序、选择排序、,冒泡排序,时间复杂度貌似都是 O(N2)。