快速排序 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执行顺序
Nov 09 Javascript
js change,propertychange,input事件小议
Dec 20 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
Apr 02 Javascript
JavaScript中的逻辑判断符&amp;&amp;、||与!介绍
Dec 31 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
Oct 30 Javascript
bootstrap提示标签、提示框实现代码
Dec 28 Javascript
js处理层级数据结构的方法小结
Jan 17 Javascript
vue-cli单页应用改成多页应用配置详解
Jul 14 Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
Apr 12 jQuery
快速解决select2在bootstrap模态框中下拉框隐藏的问题
Aug 10 Javascript
vue使用原生swiper代码实例
Feb 05 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
Mar 01 Vue.js
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
检测png图片是否完整的php代码
2010/09/06 PHP
php随机抽奖实例分析
2015/03/04 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
图像替换新技术 状态域方法
2010/01/28 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
2016/04/13 Javascript
js 作用域和变量详解
2017/02/16 Javascript
Bootstrap警告(Alerts)的实现方法
2017/03/22 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
2020/03/04 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
岗位职责的定义
2013/11/10 职场文书
社会保险接收函
2014/01/12 职场文书
文案策划求职信
2014/03/18 职场文书
学校评语大全
2014/05/06 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
详解MySQL中的主键与事务
2021/05/27 MySQL
Mysql 一主多从的部署
2022/05/20 MySQL