日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php选择排序算法原理_PHP排序算法之选择排序

發布時間:2024/10/8 php 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php选择排序算法原理_PHP排序算法之选择排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

二、選擇排序

原理: 在一列數字中,選出最小數與第一個位置的數交換。然后在剩下的數當中再找最小的與第二個位置的數交換,如此循環到倒數第二個數和最后一個數比較為止。(以下都是升序排列,即從小到大排列)

舉例說明: $arr = array(6, 3, 8, 2, 9, 1);

第一輪:

第一次比較, 第一個數 6 與(3, 8, 2, 9, 1)中 3 比較,6大,當前最小數為3,位置為 1

第二次比較, 最小數字 3 與(3, 8, 2, 9, 1)中 8 比較,3小,當前最小數為3,位置為 1

第三次比較, 最小數字 3 與(3, 8, 2, 9, 1)中 2 比較,3大,當前最小數為2,位置為 3

第四次比較, 最小數字 2 與(3, 8, 2, 9, 1)中 9 比較,2小,當前最小數為2,位置為 3

第五次比較, 最小數字 2 與(3, 8, 2, 9, 1)中 1 比較,2大,當前最小數為1,位置為 5

第一輪比較完成后,確定最小數為1,小于第一個數6,交換位置上的數,交換后結果為 1 3 8 2 9 6

總結:第一輪比較,可以確定第一個位置的最小值。

第二輪:

第一次比較, 3與(8, 2, 9, 6)中 8 比較,3小,當前最小數為3,位置為 1

第二次比較, 3與(8, 2, 9, 6)中 2 比較,3大,當前最小數為2,位置為 3

第三次比較, 2與(8, 2, 9, 6)中 9 比較,2小,當前最小數為2,位置為 3

第四次比較, 2與(8, 2, 9, 6)中 6 比較,2小,當前最小數為2,位置為 3

第二輪比較完成后,確定最小數為2,小于第二個數3,交換位置上的數,交換后結果為 1 2 8 3 9 6

總結:第二輪比較,可以確定第二個位置的最小值。至此確定了前兩個位置上的數。

第三輪:

第一次比較, 8與( 3, 9, 6)中 3 比較,8大,當前最小數為3,位置為3

第二次比較, 3與( 3, 9, 6)中 9 比較,3小,當前最小數為3,位置為3

第三次比較, 6與( 3, 9, 6)中 6 比較,3小,當前最小數為3,位置為3

第三輪比較完成后,確定最小數為3,小于第三個數8,交換位置上的數,交換后結果為 1 2 3 8 9 6

總結:第三輪比較,可以確定第三個位置的最小值。至此確定了前三個位置上的數。

第四輪:

第一次比較, 8與( 9, 6)中 9 比較,8小,當前最小數為8,位置為3

第二次比較, 8與( 9, 6)中 6 比較,8大,當前最小數為6,位置為5

第四輪比較完成后,確定最小數為6,小于第四個數8交換位置上的數,交換后結果為 1 2 3 6 9 8

總結:第四輪比較,可以確定第四個個位置的最小值。至此確定了前四個位置上的數。

第五輪:

第一次比較, 9與 8 比較,9大,當前最小數為8,位置為5

第五輪比較完成后,確定最小數為8,小于第五個數9,交換位置上的數,交換后結果為 1 2 3 6 8 9

總結:第五輪比較,可以確定第五個個位置的最小值。至此確定了前5個位置上的數。

綜合以上五輪比較,每一輪比較都可以確定一個位置,對于N個數,比較N-1輪可以確定N個位置上的數,因為確定了N-1個位置,最后一個位置也就確定了。

示例代碼:

選擇排序 實現思路 雙重循環完成,外層控制輪數,當前的最小值。內層 控制的比較次數

for ($i=0; $i < count($arr)-1; $i++) { //$i 當前最小值的位置, 需要參與比較的元素

$p = $i;//先假設最小的值的位置

for ($j=$i+1; $j < count($arr); $j++) { //$j 當前都需要和哪些元素比較,$i 后邊的。

if($arr[$p] > $arr[$j])

{

$p = $j;

}

}

if($p != $i)

{

$tmp = $arr[$p];

$arr[$p] = $arr[$i];

$arr[$i] = $tmp;

}

}

var_dump($arr);

總結

以上是生活随笔為你收集整理的php选择排序算法原理_PHP排序算法之选择排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。