快速排序 php与javascript的不同之处
更新时间:2011年02月22日 21:41:46 作者:
告诉你一个排序算法,也许是最重要的是他们知道 - 快速排序,无论是在PHP和JavaScript实现的。虽然这两种语言之间的代码看起来相似,也有一些差异,这表明了语法知识的重要性!
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;
复制代码 代码如下:
<?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简单实现一个多少秒后自动跳转的页面,实现代码非常简单,对js自动跳转页面相关知识感兴趣的朋友一起看看吧2023-01-01vue3中Element Plus全局组件配置中文的两种方案
element-plus组件文字语言默认是英文,需要手动更改一下中文包 ,本文主要介绍了vue3中Element Plus全局组件配置中文的两种方案,具有一定的参考价值,感兴趣的可以了解一下2023-12-12
最新评论