快速排序 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 remove 自定义数组删除方法
Oct 20 Javascript
IE和Firefox下event事件杂谈
Dec 18 Javascript
jQuery阻止冒泡和HTML默认操作
Nov 17 Javascript
JS根据年月获得当月天数的实现代码
Jul 03 Javascript
jquery SweetAlert插件实现响应式提示框
Aug 18 Javascript
深入理解jQuery之事件移除
Jun 02 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
Jan 19 Javascript
从零学习node.js之模块规范(一)
Feb 21 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
Jul 02 Javascript
详解vue2.6插槽更新v-slot用法总结
Mar 09 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
Jun 18 jQuery
使用vue中的混入mixin优化表单验证插件问题
Jul 02 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
桌面中心(四)数据显示
2006/10/09 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
ExtJS 工具栏 分页事件参数
2010/03/05 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
2016/04/06 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
vue实现列表的添加点击
2016/12/29 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
2017/05/07 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
Vue中的Vux配置指南
2017/12/08 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
python之PyMongo使用总结
2017/05/26 Python
python密码错误三次锁定(实例讲解)
2017/11/14 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
Python编程实现线性回归和批量梯度下降法代码实例
2018/01/04 Python
python生成器用法实例详解
2019/11/22 Python
从0到1使用python开发一个半自动答题小程序的实现
2020/05/12 Python
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
一套软件开发工程师笔试题
2015/05/18 面试题
腾讯公司的一个sql题
2013/01/22 面试题
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
大学新生军训方案
2014/05/03 职场文书
村官2015年度工作总结
2015/10/14 职场文书
2016年“11.11”光棍节活动总结
2016/04/05 职场文书
数据库连接池
2021/04/06 MySQL
浅谈mysql执行过程以及顺序
2021/05/12 MySQL