溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

?PHP數(shù)組如何運(yùn)用快速排序

發(fā)布時間:2021-06-25 09:36:20 來源:億速云 閱讀:115 作者:chen 欄目:編程語言

本篇內(nèi)容主要講解“PHP數(shù)組如何運(yùn)用快速排序”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“PHP數(shù)組如何運(yùn)用快速排序”吧!

快速排序:

快遠(yuǎn)排序(Quicksort)是對冒泡排序的一種改進(jìn)。通過一-趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中-一部分的所有數(shù)據(jù)都批另外-部分的所有數(shù)據(jù)都要小,然后再按此方法對這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,整個排序過程可以遞歸進(jìn)行,以此達(dá)到整個數(shù)據(jù)變成有序列。

設(shè)要排序的數(shù)組是.....N-1]首先任意選取一一個數(shù)據(jù)(通常選用數(shù)組的第一個數(shù))作為關(guān)鍵數(shù)據(jù),然后將所有比它小的數(shù)都放到它前面,所有比它大的數(shù)都放到它后面,這個過程稱為- -趟快速排序。值得注意的是,快速排序不是一-種穩(wěn)定的排序算法,也就是說,多個相同的值的相對位置也許會在算法結(jié)束時產(chǎn)生變動。

我們以代碼為例:

<?php
//PHP數(shù)組排序:快速排序
$arr = array(1,6,3,4,9,2,7,8);
//快速排序
function quick_sort($arr){
//遞歸出口
$len = count($arr);
if($len <= 1) return $arr;
//取出某個元素,然后將剩余的數(shù)組元素,分散到兩個不同的數(shù)組中
$left = $right = array();
for($i = 1;$i < $len;$i++){
//第一個元素作為比較元素
//比較:小的放left中,大的放right中
if($arr[$i] < $arr[0]){
  $left[] = $arr[$i];
  }else{
    $right[] = $arr[$i];
}
}
if($arr[$i] < $arr[0]){
  $left[] = $arr[$i];
  }else{
  $right[] = $arr[$i];
  }
  }
  //合并三個“數(shù)”組.
  return array_merge($left,(array)$arr[0],$right);
}
  echo '<pre>';
  print_r(quick_sort($arr));

運(yùn)行結(jié)果如下:

?PHP數(shù)組如何運(yùn)用快速排序

//$left和$right數(shù)組元素沒有排好序:遞歸點(diǎn)

$1eft = quick_ sort($1eft);
$right = quick_ sort($right); .

快速排序的算法是:

1)從數(shù)組中選出一 -個元素(通常第一一個), 作為參照對象。。

2)定義兩個數(shù)組,將目標(biāo)數(shù)組中剩余的元素與參照元素挨個比較:小的放到-一個數(shù)組,大的放到另外-一個數(shù)組。

3)第二步執(zhí)行完之后,前后的數(shù)組順序不確定,但是確定了自己的位置。

4)將得到的小數(shù)組按照第 1到第3部重復(fù)操作(子問題)。

5)回溯最小數(shù)組 (一個元素)。

到此,相信大家對“PHP數(shù)組如何運(yùn)用快速排序”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI