成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

php實(shí)現(xiàn)排序(選擇,冒泡,快速)

biaoxiaoduan / 1157人閱讀

摘要:它的基本思想是通過(guò)一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對(duì)這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,整個(gè)排序過(guò)程可以遞歸進(jìn)行,以此達(dá)到整個(gè)數(shù)據(jù)變成有序序列。

選擇排序

選擇排序主要是將假設(shè)數(shù)組中的第一個(gè)是最小的,循環(huán)與數(shù)組中的第一個(gè)進(jìn)行比較 如果比其還小 則記錄下標(biāo) 進(jìn)行數(shù)值交換 效率相對(duì)冒泡來(lái)說(shuō)比較高

 function selection_sort($array){
    $count=count($array);
    for($i=0;$i<$count-1;$i++){
        /*findtheminest*/
        $min=$i;
        echo"$min-->".$array[$min]."-->";
        for($j=$i+1;$j<$count;$j++){
            //由小到大排列
            if($array[$min]>$array[$j]){
                //表明當(dāng)前最小的還比當(dāng)前的元素大
                $min=$j;
                //賦值新的最小的
            }
        }
        echo$array[$min]."coco
"; /*swap$array[$i]and$array[$min]即將當(dāng)前內(nèi)循環(huán)的最小元素放在$i位置上*/ if($min!=$i){ $temp=$array[$min]; $array[$min]=$array[$i]; $array[$i]=$temp; } } return$array; }
冒泡排序:

冒泡排序是將數(shù)組中的前后兩個(gè)相領(lǐng)的數(shù)值進(jìn)行比較 條件成立 則進(jìn)行交換 效率比較低 因?yàn)槠浣粨Q的次數(shù)也比較多

function bubbleSort($numbers) {
$cnt = count($numbers);
for ($i = 0; $i < $cnt; $i++) {
    for ($j = 0; $j < $cnt - $i - 1; $j++) {
        if ($numbers[$j] > $numbers[$j + 1]) {
            $temp = $numbers[$j];
            $numbers[$j] = $numbers[$j + 1];
            $numbers[$j + 1] = $temp;
        }
    }
}

return $numbers;

}

插入排序:

插入排序是將插入的數(shù)據(jù)保存在變量中,與數(shù)組中的每個(gè)數(shù)比較 找到合適的位置 進(jìn)行插入 效率相對(duì)來(lái)說(shuō)比較高

function insertSort($arr)
{    
     for($i=0;$i=0&&$insertVal<$arr[$insertIndex])
         {
             $arr[$insertIndex+1]=$arr[$insertIndex];
             $insertIndex--;
         }
         $arr[$insertIndex+1]=$insertVal;
     }
}

快速插入:

快速排序由C. A. R.
Hoare在1962年提出。它的基本思想是:通過(guò)一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對(duì)這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,整個(gè)排序過(guò)程可以遞歸進(jìn)行,以此達(dá)到整個(gè)數(shù)據(jù)變成有序序列。效率很高

function quick_sort($arr)
    {
        //判斷參數(shù)是否是一個(gè)數(shù)組
        if(!is_array($arr)) 
           return false;
        //遞歸出口:數(shù)組長(zhǎng)度為1,直接返回?cái)?shù)組
        $length=count($arr);
        if($length<=1) return $arr;
        //數(shù)組元素有多個(gè),則定義兩個(gè)空數(shù)組
        $left=$right=array();
        //使用for循環(huán)進(jìn)行遍歷,把第一個(gè)元素當(dāng)做比較的對(duì)象
        for($i=1;$i<$length;$i++)
        {
            //判斷當(dāng)前元素的大小
            if($arr[$i]<$arr[0]){
                $left[]=$arr[$i];
            }else{
                $right[]=$arr[$i];
            }
        }
        //遞歸調(diào)用
        $left=quick_sort($left);
        $right=quick_sort($right);
        //將所有的結(jié)果合并
        return array_merge($left,array($arr[0]),$right);
        }

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/22466.html

相關(guān)文章

  • PHP面試:盡可能多的說(shuō)出你知道的排序算法

    摘要:良好的排序算法具有進(jìn)行最少的比較和交換的特征。冒泡排序是一個(gè)基于比較的排序算法,被認(rèn)為是效率最低的排序算法之一?,F(xiàn)在讓我們使用實(shí)現(xiàn)冒泡排序算法。插入排序到目前為止,我們已經(jīng)看到了兩種基于比較的排序算法。 預(yù)警 本文適合對(duì)于排序算法不太了解的新手同學(xué)觀看,大佬直接忽略即可。因?yàn)榭紤]到連貫性,所以篇幅較長(zhǎng)。老鐵們看完需要大概一個(gè)小時(shí),但是從入門到完全理解可能需要10個(gè)小時(shí)(哈哈哈,以我自己...

    objc94 評(píng)論0 收藏0
  • PHP算法之四大基礎(chǔ)算法

    摘要:而在證明算法是正確的基礎(chǔ)上,第二步就是分析算法的時(shí)間復(fù)雜度。算法的時(shí)間復(fù)雜度反映了程序執(zhí)行時(shí)間隨輸入規(guī)模增長(zhǎng)而增長(zhǎng)的量級(jí),在很大程度上能很好反映出算法的優(yōu)劣與否。 showImg(https://segmentfault.com/img/remote/1460000016451712?w=800&h=341); 前言 雖然工作中,你覺(jué)得自己并沒(méi)有涉及到算法這方面的東西,但是算法是程序的...

    isLishude 評(píng)論0 收藏0
  • PHPer面試指南-算法篇

    摘要:快速排序快速排序是對(duì)冒泡排序的一種改進(jìn)。獲取中間數(shù)兩值相等,返回元素比目標(biāo)大,查找左部元素比目標(biāo)小,查找右部查找失敗擴(kuò)展閱讀冒泡排序?qū)崿F(xiàn)快速排序?qū)崿F(xiàn)各種經(jīng)典算法常見(jiàn)算法面試篇實(shí)現(xiàn)二分查找法 本書的 GitHub 地址:https://github.com/todayqq/PH... 算法可以說(shuō)是大廠的必考題,對(duì)于算法,一定要理解其中的精髓、原理。 冒泡排序 冒泡排序的原理:一組數(shù)據(jù),...

    SimpleTriangle 評(píng)論0 收藏0
  • PHP數(shù)組排序算法實(shí)現(xiàn)(14種)

    摘要:本文將介紹快速排序計(jì)數(shù)排序梳排序堆排序歸并排序希爾排序選擇排序插入排序地精排序聯(lián)合冒泡排序雞尾酒排序冒泡排序奇偶排序使用標(biāo)志的冒泡排序種排序算法的實(shí)現(xiàn)。是一種不穩(wěn)定的排序算法。 本文將介紹快速排序、計(jì)數(shù)排序、梳排序、堆排序、歸并排序、希爾排序、選擇排序、插入排序、地精排序、聯(lián)合冒泡排序、雞尾酒排序、冒泡排序、奇偶排序、使用標(biāo)志的冒泡排序14種排序算法的實(shí)現(xiàn)。本文是由于閱讀了文章《測(cè)試評(píng)...

    aisuhua 評(píng)論0 收藏0
  • PHP 快速排序算法

    摘要:概念這里借用百度百科的一張圖來(lái),非常形象快速排序算法是對(duì)冒泡算法的一個(gè)優(yōu)化。獲取已經(jīng)打亂了順序的數(shù)組快速排序這里引用的是我之前寫的冒泡算法排序冒泡運(yùn)行結(jié)果 概念 這里借用百度百科的一張圖來(lái),非常形象:showImg(https://segmentfault.com/img/bVdlR6); 快速排序算法是對(duì)冒泡算法的一個(gè)優(yōu)化。他的思想是先對(duì)數(shù)組進(jìn)行分割, 把大的元素?cái)?shù)值放到一個(gè)臨時(shí)數(shù)...

    Coly 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<