快速排序 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 获取页面元素的位置的代码
Sep 25 Javascript
图片onload事件触发问题解决方法
Jul 31 Javascript
Javascript数组的排序 sort()方法和reverse()方法
Jun 04 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
Dec 10 Javascript
javascript实现多张图片左右无缝滚动效果
Mar 22 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
Jul 31 Javascript
基于Vue实例对象的数据选项
Aug 09 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
Mar 08 Javascript
Javascript通过控制类名更改样式
May 24 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
Apr 28 Javascript
vue 如何从单页应用改造成多页应用
Oct 23 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
Cakephp 执行主要流程
2010/03/24 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
javascript 正则替换 replace(regExp, function)用法
2010/05/22 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
2016/10/24 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
深入解析js轮播插件核心代码的实现过程
2017/04/14 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
python实现dnspod自动更新dns解析的方法
2014/02/14 Python
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
关于Python中异常(Exception)的汇总
2017/01/18 Python
使用Python对Access读写操作
2017/03/30 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
C#面试问题
2016/07/29 面试题
大学生简历中个人的自我评价
2013/10/06 职场文书
幼儿老师求职信
2014/06/30 职场文书
银行转正自我鉴定
2014/09/29 职场文书
公司合作协议范文
2014/10/01 职场文书