快速排序 php與javascript的不同之處
更新時(shí)間:2011年02月22日 21:41:46 作者:
告訴你一個(gè)排序算法,也許是最重要的是他們知道 - 快速排序,無論是在PHP和JavaScript實(shí)現(xiàn)的。雖然這兩種語言之間的代碼看起來相似,也有一些差異,這表明了語法知識(shí)的重要性!
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));
注意,第一個(gè)條件語句是很重要的!而在PHP中COUNT函數(shù)將返回一個(gè)NULL值或空數(shù)組或0代替,你可以像count($array)<2的東西它
if (count($array) < 2)
return $array;
在JavaScript中你無法使用,由于對(duì)'未定義'的值時(shí),存在一個(gè)“空“數(shù)組作為參數(shù)傳遞。因此,需要包含上面的條件:
// this will result with an error
if (arr.length < 2)
return arr;
復(fù)制代碼 代碼如下:
<?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
復(fù)制代碼 代碼如下:
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));
注意,第一個(gè)條件語句是很重要的!而在PHP中COUNT函數(shù)將返回一個(gè)NULL值或空數(shù)組或0代替,你可以像count($array)<2的東西它
復(fù)制代碼 代碼如下:
if (count($array) < 2)
return $array;
在JavaScript中你無法使用,由于對(duì)'未定義'的值時(shí),存在一個(gè)“空“數(shù)組作為參數(shù)傳遞。因此,需要包含上面的條件:
復(fù)制代碼 代碼如下:
// this will result with an error
if (arr.length < 2)
return arr;
相關(guān)文章
JS對(duì)img進(jìn)行操作(換圖片/切圖/輪換/停止)
JS對(duì)img進(jìn)行操作包括:換圖片/切圖/輪換/停止輪換等等,在本文將逐一實(shí)現(xiàn),感興趣的朋友可以參考下哈,希望對(duì)你學(xué)習(xí)js知識(shí)有所幫助2013-04-04用js實(shí)現(xiàn)計(jì)算代碼行數(shù)的簡單方法附代碼
用js實(shí)現(xiàn)計(jì)算代碼行數(shù)的簡單方法附代碼...2007-08-08JavaScript高階教程之“==”隱藏下的類型轉(zhuǎn)換
這篇文章主要給大家介紹了關(guān)于JavaScript高階教程之“==”隱藏下類型轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04JavaScript實(shí)現(xiàn)一個(gè)多少秒后自動(dòng)跳轉(zhuǎn)的頁面(案例代碼)
最近遇到這樣一個(gè)需求是用js簡單實(shí)現(xiàn)一個(gè)多少秒后自動(dòng)跳轉(zhuǎn)的頁面,實(shí)現(xiàn)代碼非常簡單,對(duì)js自動(dòng)跳轉(zhuǎn)頁面相關(guān)知識(shí)感興趣的朋友一起看看吧2023-01-01Javascript模擬scroll滾動(dòng)效果腳本
項(xiàng)目需要寫了一段模擬Scroll滾動(dòng)代碼,分享的同時(shí),我有些疑問,希望大家能幫忙解決,代碼如下2008-09-09vue3中Element Plus全局組件配置中文的兩種方案
element-plus組件文字語言默認(rèn)是英文,需要手動(dòng)更改一下中文包 ,本文主要介紹了vue3中Element Plus全局組件配置中文的兩種方案,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12