快速排序 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 相关文章推荐
脚本吧 - 幻宇工作室用到js,超强推荐base.js
Dec 23 Javascript
Javascript技术技巧大全(五)
Jan 22 Javascript
一个通过script自定义属性传递配置参数的方法
Sep 15 Javascript
深入探密Javascript数组方法
Jan 08 Javascript
JavaScript中的函数声明和函数表达式区别浅析
Mar 27 Javascript
JavaScript数据类型转换的注意事项
Jul 31 Javascript
Boostrap基础教程之JavaScript插件篇
Sep 08 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
Sep 29 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
Nov 08 Javascript
微信小程序云开发详细教程
May 16 Javascript
小程序两种滚动公告栏的实现方法
Sep 17 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
Dec 12 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
用PHP实现维护文件代码
2007/06/14 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
js点击选择文本的方法
2015/02/09 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
浅析Ajax语法
2016/12/05 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
最实用的JS数组函数整理
2017/12/05 Javascript
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
详解vue项目中实现图片裁剪功能
2019/06/07 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
Python实现带参数的用户验证功能装饰器示例
2018/12/14 Python
Python flask框架post接口调用示例
2019/07/03 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
什么是python的必选参数
2020/06/21 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
前台文员职责范本
2014/03/07 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
双拥工作宣传标语
2014/06/26 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书