快速排序 php与javascript的不同之处


Posted in Javascript onFebruary 22, 2011

1. PHP

<?php 
$unsorted = array(2,4,5,63,4,5,63,2,4,43); 
function quicksort($array) 
{ 
if (count($array) == 0) 
return array(); 
$pivot = $array[0]; 
$left = $right = array(); 
for ($i = 1; $i < count($array); $i++) { 
if ($array[$i] < $pivot) 
$left[] = $array[$i]; 
else 
$right[] = $array[$i]; 
} 
return array_merge(quicksort($left), array($pivot), quicksort($right)); 
} 
$sorted = quicksort($unsorted); 
print_r($sorted);

2. JavaScript
var a = [2,4,5,63,4,5,63,2,4,43]; 
function quicksort(arr) 
{ 
if (arr.length == 0) 
return []; 
var left = new Array(); 
var right = new Array(); 
var pivot = arr[0]; 
for (var i = 1; i < arr.length; i++) { 
if (arr[i] < pivot) { 
left.push(arr[i]); 
} else { 
right.push(arr[i]); 
} 
} 
return quicksort(left).concat(pivot, quicksort(right)); 
} 
console.log(quicksort(a));

注意,第一个条件语句是很重要的!而在PHP中COUNT函数将返回一个NULL值或空数组或0代替,你可以像count($array)<2的东西它
if (count($array) < 2) 
return $array;

在JavaScript中你无法使用,由于对'未定义'的值时,存在一个“空“数组作为参数传递。因此,需要包含上面的条件:
// this will result with an error 
if (arr.length < 2) 
return arr;
Javascript 相关文章推荐
window.open不被拦截的实现代码
Aug 22 Javascript
用js模拟struts2的多action调用示例
May 19 Javascript
原生javaScript实现图片延时加载的方法
Dec 22 Javascript
jquery插件qrcode在线生成二维码
Apr 26 Javascript
jquery+json实现数据二级联动的方法
Nov 28 Javascript
字符串反转_JavaScript
Apr 28 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
Oct 24 Javascript
基于webpack4搭建的react项目框架的方法
Jun 30 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
Sep 04 Javascript
vue-rx的初步使用教程
Sep 21 Javascript
layui form.render('select', 'test2') 更新渲染的方法
Sep 27 Javascript
vue 组件开发原理与实现方法详解
Nov 29 Javascript
JavaScript传递变量: 值传递?引用传递?
Feb 22 #Javascript
JavaScript中的排序算法代码
Feb 22 #Javascript
JavaScript中几种常见排序算法小结
Feb 22 #Javascript
用JS控制回车事件的代码
Feb 20 #Javascript
apycom出品的jQuery精美菜单破解方法
Feb 18 #Javascript
自制基于jQuery的智能提示插件一枚
Feb 18 #Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
Feb 18 #Javascript
You might like
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
jquery实现excel导出的方法
2013/04/04 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
2014/01/09 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python thread 并发且顺序运行示例
2009/04/09 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
System.Array.CopyTo()和System.Array.Clone()有什么区别
2016/06/20 面试题
应聘编辑自荐信范文
2014/03/12 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
道歉的话语大全
2015/05/12 职场文书
2015年女工委工作总结
2015/07/27 职场文书
外出培训学习心得体会
2016/01/18 职场文书