php实现冒泡排序算法,php常用算法和时间复杂度?

用户投稿 59 0

关于“php实现冒泡排序”的问题,小编就整理了【2】个相关介绍“php实现冒泡排序”的解答:

php常用算法和时间复杂度?

按数量级递增排列,常见的时间复杂度有:常数阶O(1),对数阶O(log2n),线性阶O(n),线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3)

复制代码 代码如下:

//二分查找O(log2n)

function erfen($a,$l,$h,$f){

if($l >$h){ return false;}

$m = intval(($l+$h)/2);

if ($a[$m] == $f){

return $m;

}elseif ($f < $a[$m]){

return erfen($a, $l, $m-1, $f);

}else{

return erfen($a, $m+1, $h, $f);

}

}

$a = array(1,12,23,67,88,100);

var_dump(erfen($a,0,5,1));

//遍历树O(log2n)

function bianli($p){

$a = array();

foreach (glob($p.'/*') as $f){

if(is_dir($f)){

$a = array_merge($a,bianli($f));

}else{

$a[] = $f;

php如何定义随机数的数组?

因为语言不同,代码就不贴了,思路如下: 定义数组,因为10个是确定的,所以用第一个for循环循环十次,每次都random出数字赋值给数组,之后冒泡排序,因为冒泡法的循环次数不定,用while内嵌for循环:

while(flag){ flag=false; for(i=0;i<10;i++) {if(a[i]>a[i+1]){a[i]=a[i]+a[i+1];a[i+1]=a[i]-a[i+1];a[i]=a[i]-a[i+1];flag=true;}} } 意思就是每次都用冒泡法给a0~a9两两排序,如果确实有不符合要求的就变动位置,如果都没有那么flag保持初值false则推出while循环

1.

使用rand()函数 在PHP中,我们可以使用rand()函数来生成随机数。下面是一个基本的使用示例: $number = rand(0, 10); // 生成0到10之间的随机数 如果我们要生成一个随机数组,我们可以使用循环来生成每个元素。下面是一个示例: $array = array(); // 创建一个空数组 for($i = 0; $i < 10; $i++) { $array[] = rand(0, 100); // 向数组中添加一个随机数 } 在这个示例中,我们使用for循环来循环10次,每次添加一个0到100之间的随机数到数组中。通过这种方法,我们可以创建一个具有指定长度和随机值的数组。

2.

使用range()函数 在PHP中,我们可以使用range()函数来生成一个指定范围内的数字数组。下面是一个使用range()函数来生成包含0到9的数字数组的示例: $numbers = range(0, 9); // 生成包含0到9的数字数组 如果我们想要生成一个随机数组,我们可以使用shuffle()函数来对这个数字数组进行随机排序。下面是一个使用shuffle()函数来生成一个随机数组的示例: $numbers = range(0, 9); // 生成包含0到9的数字数组 shuffle($numbers); // 对数字数组进行随机排序 在这个示例中,我们使用range()函数生成一个0到9的数字数组,然后使用shuffle()函数对这个数组进行随机排序。通过这种方法,我们可以创建一个具有指定范围和随机顺序的数组。

到此,以上就是小编对于“php实现冒泡排序”的问题就介绍到这了,希望介绍关于“php实现冒泡排序”的【2】点解答对大家有用。

抱歉,评论功能暂时关闭!