快速排序 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,超强推荐expand.js
Dec 23 Javascript
[IE&amp;FireFox兼容]JS对select操作
Jan 07 Javascript
javascript 密码强弱度检测万能插件
Feb 25 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
Jul 02 Javascript
浅谈js中test()函数在正则中的使用
Aug 19 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
Nov 24 Javascript
javascript笔记之匿名函数和闭包
Feb 06 Javascript
vue-resource调用promise取数据方式详解
Jul 21 Javascript
JS实现瀑布流布局
Oct 21 Javascript
微信小程序实现动态获取元素宽高的方法分析
Dec 10 Javascript
详解vue后台系统登录态管理
Apr 02 Javascript
修改vue源码实现动态路由缓存的方法
Jan 21 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
PHP:风雨欲来 路在何方?
2006/10/09 PHP
跟我学Laravel之路由
2014/10/15 PHP
纯PHP代码实现支付宝批量付款
2015/12/24 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
IE6、IE7中获取Button元素的值的bug说明
2011/08/28 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
2018/08/14 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
vue实现几秒后跳转新页面代码
2020/09/09 Javascript
Python中的条件判断语句基础学习教程
2016/02/07 Python
Python文件的读写和异常代码示例
2017/10/31 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
2020/04/16 Python
Python新手学习标准库模块命名
2020/05/29 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
土建工程师岗位职责
2014/06/10 职场文书
学校四群教育实施方案
2014/06/12 职场文书
个人年终总结怎么写
2015/03/09 职场文书
怎样写工作总结啊!
2019/06/18 职场文书
python实现简单区块链结构
2021/04/25 Python
Python之matplotlib绘制饼图
2022/04/13 Python
python解析照片拍摄时间进行图片整理
2022/07/23 Python