快速排序 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 相关文章推荐
Javascript与vbscript数据共享
Jan 09 Javascript
js的一些常用方法小结
Jun 29 Javascript
jQuery+css+html实现页面遮罩弹出框
Mar 21 Javascript
解读JavaScript中 For, While与递归的用法
May 07 Javascript
jquery对象和DOM对象的区别介绍
Aug 09 Javascript
Vue.js学习笔记之 helloworld
Aug 14 Javascript
bootstrap选项卡使用方法解析
Jan 11 Javascript
vue 1.x 交互实现仿百度下拉列表示例
Oct 21 Javascript
初学者AngularJS的环境搭建过程
Oct 27 Javascript
vuex 项目结构目录及一些简单配置介绍
Apr 08 Javascript
原生JS实现前端本地文件上传
Sep 08 Javascript
微信小程序自定义tabBar在uni-app的适配详解
Sep 30 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 preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
兼容PHP和Java的des加密解密代码分享
2014/06/26 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
JavaScript 继承详解(三)
2009/07/13 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
2013/11/26 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
Extjs实现下拉菜单效果
2016/04/01 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
详细谈谈AngularJS的子级作用域问题
2016/09/05 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
深入理解vue $refs的基本用法
2017/07/13 Javascript
webpack常用配置总览(小结)
2019/11/18 Javascript
react实现复选框全选和反选组件效果
2020/08/25 Javascript
利用H5api实现时钟的绘制(javascript)
2020/09/13 Javascript
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
python rsa 加密解密
2017/03/20 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
python创建学生成绩管理系统
2019/11/22 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
LINUX下线程,GDI类的解释
2016/12/14 面试题
3.12植树节活动总结2014
2014/03/13 职场文书
教研处工作方案
2014/05/26 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
员工表扬信怎么写
2015/05/05 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
Django中的JWT身份验证的实现
2021/05/07 Python
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫