如何用PHP實現插入排序?_php執行個體

來源:互聯網
上載者:User

插入排序的基本操作就是將一個資料插入到已經排好序的有序資料中,從而得到一個新的、個數加一的有序資料。

演算法描述:

⒈ 從第一個元素開始,該元素可以認為已經被排序

⒉ 取出下一個元素,在已經排序的元素序列中從後向前掃描

⒊ 如果該元素(已排序)大於新元素,將該元素移到下一位置

⒋ 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置

⒌ 將新元素插入到下一位置中

⒍ 重複步驟2

複製代碼 代碼如下:

<?php

$arr =array(123,0,5,-1,4,15);

function insertSort(&$arr){

//先預設第一個下標為0的數是排好的數
for($i=1;$i<count($arr);$i++){
//確定插入比較的數
$insertVal=$arr[$i];
//確定與前面比較的數比較
$insertIndex=$i-1;

//表示沒有找到位置
while($insertIndex>=0 && $insertVal<$arr[$insertIndex]){

//把數後移
$arr[$insertIndex+1]=$arr[$insertIndex];
$insertIndex--;
}

//插入(給$insertval找到位置了)
$arr[$insertIndex+1] = $insertVal;
}
}

insertSort($arr);
print_r($arr);
?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.