快速排序 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  Error 对象 错误处理
May 18 Javascript
捕获关闭窗口的脚本
Jan 10 Javascript
JS清空多文本框、文本域示例代码
Feb 24 Javascript
JS触摸事件、手势事件详解
May 04 Javascript
vue-router单页面路由
Jun 17 Javascript
vue实现登陆登出的实现示例
Sep 15 Javascript
Vue中v-for的数据分组实例
Mar 07 Javascript
在vue里面设置全局变量或数据的方法
Mar 09 Javascript
vue实现滑动超出指定距离回顶部功能
Jul 31 Javascript
浅谈layui 表单元素的选中问题
Oct 25 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
Jul 11 Javascript
关于Vue中$refs的探索浅析
Nov 05 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连mysql和oracle数据库性能比较
2006/10/09 PHP
解决cPanel无法安装php5.2.17
2014/06/22 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
php时间计算相关问题小结
2016/05/09 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
js中的DOM模拟购物车功能
2017/03/22 Javascript
微信小程序 开发MAP(地图)实例详解
2017/06/27 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
vue中使用mxgraph的方法实例代码详解
2019/05/17 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
详解Typescript里的This的使用方法
2021/01/08 Javascript
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
Django进阶之CSRF的解决
2018/08/01 Python
使用pip发布Python程序的方法步骤
2018/10/11 Python
Python计算不规则图形面积算法实现解析
2019/11/22 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
Python中的Cookie模块如何使用
2020/06/04 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
Tostadora意大利:定制T恤
2019/04/08 全球购物
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
入团者的自我评价分享
2013/12/02 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
丧事答谢词
2015/01/05 职场文书
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL