1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > php实现冒泡排序 选择排序 插入排序和快速排序 快速排序法 快速排序c语言 快速排

php实现冒泡排序 选择排序 插入排序和快速排序 快速排序法 快速排序c语言 快速排

时间:2018-09-20 04:42:25

相关推荐

php实现冒泡排序 选择排序 插入排序和快速排序 快速排序法 快速排序c语言 快速排

后端开发|php教程

快速排序,插入排序

后端开发-php教程

之前自学数据结构的时候看过C语言版的四种基本排序法,C语言都忘的差不多了,最近有空就用php将四种排序法重新写了一遍,复习一下日益生疏的算法。直接贴上代码。

在线做题源码,vscode代码画流程图,ubuntu 只有 lo,查看tomcat 堆栈内存,爬虫傻瓜软件,php打开工具,韶关市公司seo优化代理lzw

<?php/** * 打印数据,用于调试 * @param var 打印对象 */function p($var){ echo "

"; print_r($var); echo "

";

}

9.9网站源码,vscode项目没反应,ubuntu 平板开发,tomcat7调试,谁会爬虫会爬虫会怎样爬,php get跳转,sem服务推广营销seo博客,wap html5网站模板,destoon wap模板lzw

$arr=array(33,11,22,66,55,44,88,99,77);

printf("**原数组**");

p($arr);

/**

*冒泡排序法

* @param $arr 排序数组

*思路:和相邻的数字对比,每次对比如果左边比右边大则交换位置。

*两个节点,一个方向:两次循环次数,冒泡方向(即$j的初值和终止条件)

*num的作用是做了优化,一旦循环没有交换则冒泡已完成

**/

function bubbleSort($arr){

print("**冒泡排序法**");

$len=count($arr);

$temp=0;

$num=1;

for ($i=0; ($i 0); $i++) {

$num=0;

for ($j=$len-1; $j>$i; $j--) {

if($arr[$j]>$arr[$j-1]){

continue;

}else{

//冒泡交换

$temp=$arr[$j-1];

$arr[$j-1]=$arr[$j];;

$arr[$j]=$temp;

$num++;

}

微擎 占卜 源码,Ubuntu关掉磁盘检测,chrome插件实现爬虫,php自学golang,seo竞争技巧lzw

}

}

return $arr;

}

p(bubbleSort($arr));

/**

*选择排序法

* @param $arr 排序数组

*思路:每一轮循环,找出最小的数字,把其下标保存到最左方数字

*而找出最小数字的方法是:和右方数字比较,若右方比较小,则保存其下标,再将此下标对应的值和

*下一个右方数字比较直到所有右方数字比较一遍,再将此最小值存放在最左方数字

**/

function selectSort($arr){

print("**选择排序法**");

$len=count($arr);

$buff=0;

for ($i=0; $i < $len-1; $i++) { $temp=$i;for ($j=$i; $j $arr[$j+1]){

$temp=$j+1;//若右方数字更小,则保存其下标,用来跟后面的数据比较

}

}

//得到最小的数字下标

if($temp!=$i){

//如果下标不是$i则交换,不然就没必要

$buff=$arr[$temp];

$arr[$temp]=$arr[$i];

$arr[$i]=$buff;

}

}

return $arr;

}

p(selectSort($arr));

/**

*插入排序法

* @param $arr 排序数组

*思路:假设前面的数已经是排好顺序的,现在要把第n个数插到前面的有序数中。即把第二个数据插入到

*第一个数据之中,使其形成一个有序数组,然后再讲第三个数插入到前面两个数组成的有序数组中,形成

*有序数组,如此反复最后完成排序

**/

function insertSort($arr){

print("**插入排序法**");

$len=count($arr);

for ($i=1; $i =0; $j--) {

if($temp<$arr[$j]){$arr[$j+1]=$arr[$j];//如果要插入的数据比原数组的最后一个小,则与之交换$arr[$j]=$temp;}else break;}}return $arr;}p(insertSort($arr));/***快速排序法* @param $arr 排序数组*思路:选择一个基准元素,通过一趟扫描,将待排序列分成两部分,再对每一部分递归调用自己方法*最后返回左边排序好的数组和右边排序好的数组和基准元素合并,就是有序数组了。**/function quickSort($arr){$len=count($arr);if($len<=1) return $arr;$baseNum=$arr[0];$leftArr=$rightArr=array();//根据基准元素分成两部分for ($i=1; $i < $len; $i++) { if ($arr[$i]

运行结果:

以上就介绍了php实现冒泡排序,选择排序,插入排序和快速排序,包括了快速排序,插入排序方面的内容,希望对PHP教学有兴趣的朋友有所帮助。

php实现冒泡排序 选择排序 插入排序和快速排序 快速排序法 快速排序c语言 快速排序算法c语

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。