php插入排序法實(shí)現(xiàn)數(shù)組排序?qū)嵗?/div>
來源:易賢網(wǎng) 閱讀:727 次 日期:2015-03-13 09:58:48
溫馨提示:易賢網(wǎng)小編為您整理了“php插入排序法實(shí)現(xiàn)數(shù)組排序?qū)嵗?方便廣大網(wǎng)友查閱!

這篇文章主要介紹了php插入排序法實(shí)現(xiàn)數(shù)組排序,實(shí)例分析了插入排序法的原理與具體的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了php插入排序法實(shí)現(xiàn)數(shù)組排序的方法。分享給大家供大家參考。具體分析如下:

插入排序法的基本思路:同樣以案例來說明,還是以$arr = array(2,6,3,9),由大到小排序。

實(shí)現(xiàn)原理:假設(shè)(并不實(shí)際創(chuàng)建)有一個(gè)有序數(shù)組$arr = array(2),用$arr[1]=6來與它進(jìn)行比較,如果6>2,由把$arr[0]后移到$arr[1]位置,而6插入到$arr[0]位置。接著,$arr[2]=3與$arr[1]=2比較,3>2,則$arr[1]=2繼續(xù)后移到$arr[2]位置,原$arr[3]=3插入到$arr[1]位置,再繼續(xù)把9插入到合位置,最終得到的結(jié)果是(9,6,3,2)。同樣是經(jīng)過 count($arr)-1 次大循環(huán),即可實(shí)現(xiàn)排序。

代碼規(guī)律分析:

第一次大循環(huán):$[1]與$[0]比;

第二次大循環(huán):$[2]與$[1]比,$[1]與$[0]比;

第三次大循環(huán):$[3]與$[2]比,$[2]與$[1]比,$[1]與$[0]比;

PHP代碼,使用了函數(shù)封裝,以便于使用

<?php

function insertSort(&$arr){

for($i=1;$i<count($arr);$i++){

//$insertVal是準(zhǔn)備插入的數(shù)

for($j=$i;$j>0;$j--){

if($arr[$j]>$arr[$j-1]){

$insertVal = $arr[$j];

$arr[$j] = $arr[$j-1];

$arr[$j-1] = $insertVal;

}

}

}

}

$myarr = array(2,6,3,9);

insertSort($myarr);

echo "<pre>";

print_r($myarr);

?>

代碼實(shí)現(xiàn)分析:

第一次大循環(huán):

$i=1 數(shù)組(2,6,3,9)

$j=1 執(zhí)行6和2比:$arr[1]=2;$arr[0]=6,得到(6,2,3,9)

第二次大循環(huán):

$i=2 數(shù)組(6,2,3,9)

$j=2 執(zhí)行3和2比:變成$arr[2]=2,$arr[1]=3,得到(6,3,2,9)

$j--,$j=1 執(zhí)行$arr[1]和$arr[0]比:條件不成立

第三次大循環(huán):

$i=3 數(shù)組(6,3,2,9)

$j=3 執(zhí)行9和2比:變成$arr[3]=2,$arr[2]=9,得到(6,3,9,2)

$j--,$j=2 執(zhí)行9和3比:變成$arr[2]=3,$arr[1]=9,得到(6,9,3,2)

$j--,$j=1 執(zhí)行9和6比:變成$arr[1]=5,$arr[0]=9,得到(9,6,3,2)

希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:php插入排序法實(shí)現(xiàn)數(shù)組排序?qū)嵗?/a>
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)