快速排序 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 复制数组实现代码
Nov 26 Javascript
jquery 锁定弹出层实现代码
Feb 23 Javascript
jQuery与ExtJS之选择实例分析
Aug 19 Javascript
javascript读写json示例
Apr 11 Javascript
JavaScript中对循环语句的优化技巧深入探讨
Jun 06 Javascript
javascript中的遍历for in 以及with的用法
Dec 22 Javascript
JS实现自适应高度表单文本框的方法
Feb 25 Javascript
超链接怎么正确调用javascript函数
May 23 Javascript
Vue 过渡(动画)transition组件案例详解
Jan 22 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
Aug 11 Javascript
微信小程序实现上传多张图片、删除图片
Jul 29 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
Feb 15 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面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
服务器web工具 php环境下
2010/12/29 PHP
php通过排列组合实现1到9数字相加都等于20的方法
2015/08/03 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
PHP中类的继承和用法实例分析
2016/05/24 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
js 图片轮播(5张图片)
2008/12/30 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
详解vue父子组件间传值(props)
2017/06/29 Javascript
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
简单了解Ajax表单序列化的实现方法
2019/06/14 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
python实现自动发送邮件
2018/06/20 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
技校生自我鉴定范文
2013/09/26 职场文书
国际商务系学生个人的自我评价
2013/11/26 职场文书
篮球拉拉队口号
2015/12/25 职场文书