gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

PHP 排序算法原理及總結

冒泡排序原理

原理描述:

一次比較倆個相鄰的元素,大的元素后移,小的元素前移(交換位置)。直到找出最大的元素。就像是氣泡一樣,大的向下沉,小的向上冒。

流程:

有一個無序數組 $arr = [8, 9, 3, 6, 1, 4]

第一次外循環 :找出最大值 9,要倆倆相比,比 5 次。 8 9 3 6 1 4 第一次, 8 跟 9 比,9 大,所以沒有交換位置。 8 3 9 6 1 4 第二次, 9 跟 3 比, 9 大,交換位置。 8 3 6 9 1 4 第三次, 9 跟 6 比, 9 大,交換位置。 8 3 6 1 9 4 第四次, 9 跟 1 比, 9 大,交換位置。 8 3 6 1 4 9 第五次, 9 跟 4 比, 9 大,交換位置。 第二次外循環:找出第二大值 8,要倆倆相比,比 4 次。因為上一步已經找到最大值了。 3 8 6 1 4 9 第一次,8 跟 3 比,8 大, 交換位置。 3 6 8 1 4 9 第二次,8 跟 6 比,8 大, 交換位置。 3 6 1 8 4 9 第三次,8 跟 1 比,8 大, 交換位置。 3 6 1 4 8 9 第四次,8 跟 4 比,8 大, 交換位置。 第三次外循環:找出第三大的值 6,要倆倆相比,比三次。 3 6 1 4 8 9 第一次,3 跟 6 比,6 大,位置沒有變化。 3 1 6 4 8 9 第二次,6 跟 1 比,6 大,交換位置。 3 1 4 6 8 9 第三次,6 跟 4 比,6 大,交換位置。 第四次外循環:找出第四大的值 4,要倆倆相比,比 2 次。 1 3 4 6 8 9 第一次, 3 跟 1 比, 3 大,交換位置。 1 3 4 6 8 9 第二次, 3 跟 4 比, 4 大,位置不變。 第五次外循環:找出第五大的值 3, 比一次就夠了。 1 3 4 6 8 9 比一次。1 跟 3 比,3 大,位置沒有變化。

總結:

1. 外層循環要元素數 – 1次。負責找出最大值。

2. 內層循環逐層遞減一次。負責倆倆相比較,交換元素位置。

代碼:

<?php         function bubbleSort($arr)          {             $len = count($arr);//獲取元素個數             for ($i = 0; $i < $len - 1; $i ++) {//找出最大值                 $flag = 0;//做一個標記                 for($j = 0; $j < $len - 1 - $i; $j++) {//倆倆相比較,交換位置                     if ($arr[$j] > $arr[$j + 1]) {                         //$temp = $arr[$j];//存當前元素                         //$arr[$j] = $arr[$j + 1];//把當前元素的值換成下一個元素的值                         //$arr[$j + 1] = $temp;//把下一個元素的值換成上一個元素的值。                         list($arr[$j], $arr[$j + 1]) = [$arr[$j + 1], $arr[$j]];//來自lovecn的評論,有時候思維有些固化。                         $flag = 1;//交換位置就記錄。                     }                 }                 if ($flag == 0) {//沒有發生交換位置,說明排序已經完成。可以推出循環。                     break;                 }             }             return $arr;         }

快速排序原理(遞歸)

原理描述:

從數組中取第一個值作為參照物,比這個值小的放在左邊,比這個值大的放在右邊,這樣就會有倆個新的數組,遞歸處理倆個數組,然后左邊,參照物,右邊合并。注意:有遞歸就要找到遞歸出口,不然就會一直遞歸下去。

流程:

用文字敘述流程太麻煩,就從網上找了一個圖片,過程很清晰。

PHP 排序算法原理及總結

代碼:

    <?php         function quickSort($arr)         {             $len = count($arr);             //遞歸出口             if($len <= 1) {                 return $arr;             }             $markValue = $arr[0];//參照物。             $left = $right = [];//定義左邊和右邊。             for($i = 1; $i < $len; $i++) {//從1開始循環,因為第一個元素當作參照物。                 if($arr[$i] > $markValue) {//大于參照物的放在右邊。                     $right[] = $arr[$i];                 } else {//小于和等于參照物的元素都放進左邊,這樣會避免如果數組有重復元素時,會漏掉元素。                     $left[] = $arr[$i];                 }             }             return array_merge(quickSort($left), [$markValue], quickSort($right));         }

插入排序

原理描述:

將要排序的數組分成倆個部分,取數組第一個元素放有序集合中,剩下的放到無序集合中。將需要排序的數,與前面已經排好序的數據從后往前進行比較,直到找到小于或者等于它的數,使其插入到相應的位置。

我的記憶方法:

假設有倆個箱子,第一個箱子是透明并且是空的,要用來裝有序元素,第二個箱子是不透明并且是滿的,裝無序元素。(其實裝什么都行,你喜歡的讓你容易記住的最好)。

1.第一步:在不透明箱子里隨便拿一個元素,直接扔到透明的箱子里
2.第二步:再從不透明的箱子里拿出一個元素,放進透明箱子里前,做比較。如果大就放后面,如果小就放前面。
3.重復第二步,但是我們每次需要比較的次數增加了,因為透明箱子里元素多了,直到找到合適的位置。

流程:

PHP 排序算法原理及總結

<?php     function insertSort($arr)     {         $len = count($arr);         if ($len <= 1) {//一個元素或者沒有元素,排序無意義。             return $arr;         }         for($i = 0; $i < $len - 1; $i++) {             for($j = $i + 1; $j > 0; $j--){//每次比較次數增加。因為有序集合元素在增加。                 if ($arr[$j] < $arr[$j - 1]) {                     list($arr[$j], $arr[$j - 1]) = [$arr[$j - 1], $arr[$j]];//交換位置。                 }             }         }         return $arr;     }

選擇排序

原理描述:

每次一次從數組中取出最小元素或者最大元素,放到指定位置。

第一步:給第一個元素一個圣火令,和后面到每個元素比較,(我是取最小元素)。遇到比它小到元素就把這個圣火令給它,知道把圣火令交給最小元素手里。

第二步:交換位置,圣火令交給第二哥元素,重復第一步。

流程:

PHP 排序算法原理及總結

<?php     function selectSort($arr)     {         $len = count($arr);         if ($len <= 1) {//一個元素或者沒有元素,排序沒有意義。             return $arr;         }         for($i = 0; $i < $len - 1; $i++) {             $p = $i;//給第一個元素圣火令。             for($j =  $i + 1; $j < $len; $j++) {                 if ($arr[$j] < $arr[$p]) {//有圣火令的元素和后面的元素比較,把圣火令交給較小的元素。                     $p = $j;                 }             }             list($arr[$p], $arr[$i]) = [$arr[$i], $arr[p]];         }         return $arr;     }

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
成人免费性视频| 国产精品久久久影院| 日本大胆人体视频| 99re99热| 熟女熟妇伦久久影院毛片一区二区| 亚洲老女人av| 超碰在线播放91| 潘金莲激情呻吟欲求不满视频| 久久综合伊人77777麻豆最新章节| www..com日韩| 午夜肉伦伦影院| 成人性视频欧美一区二区三区| 怡红院av亚洲一区二区三区h| 人人妻人人澡人人爽欧美一区双| 日韩免费在线观看av| 国产一区二区三区播放| 成人国产在线看| 国产资源在线视频| 人妻有码中文字幕| 国产精品视频黄色| 青娱乐国产精品视频| dy888午夜| aa视频在线播放| 男人透女人免费视频| 97超碰成人在线| 看全色黄大色大片| 波多野结衣家庭教师视频| av免费中文字幕| 国产三级生活片| 中文字幕日韩精品无码内射| 狠狠干 狠狠操| 九一精品久久久| 日韩一级性生活片| 另类小说第一页| 国产资源第一页| 中文字幕第80页| 少妇人妻在线视频| 91网址在线观看精品| 免费在线a视频| 国产大片一区二区三区| 鲁一鲁一鲁一鲁一澡| 日本特级黄色大片| 国产肥臀一区二区福利视频| 亚洲第一成肉网| 男人揉女人奶房视频60分 | 大桥未久一区二区| 日本少妇高潮喷水视频| 91性高潮久久久久久久| 国产精品99久久免费黑人人妻| 日韩 欧美 自拍| 成人av毛片在线观看| 茄子视频成人免费观看| 91黄色在线看| 日本一道在线观看| 手机在线国产视频| 最新天堂中文在线| 成人免费在线观看视频网站| 成熟了的熟妇毛茸茸| 国产精品久久久久久久乖乖| 色婷婷一区二区三区在线观看| 成人在线免费播放视频| 日韩av黄色网址| 99热自拍偷拍| 日韩视频第二页| 欧美网站免费观看| 九九九九免费视频| 亚洲中文字幕无码av永久| h无码动漫在线观看| 日本成人在线不卡| 50度灰在线观看| 日韩一级免费看| 国产精品www在线观看| 欧美深夜福利视频| 中文字幕乱码人妻综合二区三区| 黄网站欧美内射| 亚洲国产精品久久久久爰色欲| 国产精品999视频| 黄色免费观看视频网站| 老熟妇仑乱视频一区二区| 日韩毛片在线免费看| 精品久久久噜噜噜噜久久图片| 国产欧美在线一区| 亚洲老女人av| 超碰97在线看| 少妇高潮喷水在线观看| 动漫av免费观看| 蜜桃福利午夜精品一区| 欧美a级免费视频| 免费av观看网址| 久久久久久久久久久久91| 天天综合天天添夜夜添狠狠添| 潘金莲一级淫片aaaaa免费看| 日本精品久久久久久久久久| 超碰97人人射妻| 亚洲色图欧美自拍| 自慰无码一区二区三区| 亚洲精品怡红院| 欧美中文字幕在线观看视频| 久久人妻精品白浆国产| 久久精品国产精品亚洲精品色| 日本男女交配视频| 岛国毛片在线播放| 水蜜桃色314在线观看| 午夜久久久精品| 少妇高潮毛片色欲ava片| 日日干夜夜操s8| 青青草成人免费在线视频| 国产免费中文字幕| 精品久久一二三| 特色特色大片在线| 国产精品无码av无码| 国产精品三级一区二区| 亚洲美女爱爱视频| 国产精品va无码一区二区| 国产农村妇女精品久久| 免费看的黄色大片| 久久亚洲国产成人精品无码区| 色噜噜狠狠一区二区| www黄色av| 免费欧美一级视频| 少妇一晚三次一区二区三区| 男女男精品视频站| 国内外成人激情视频| 性高湖久久久久久久久aaaaa| 久久久国产精华液999999| 九色在线视频观看| av网站大全免费| 婷婷五月综合缴情在线视频| 国产又粗又长又爽视频| 日本特级黄色大片| 波多野结衣在线免费观看| 国产又黄又猛的视频| 亚洲天堂av线| 亚洲第一狼人区| 久久国产激情视频| 亚洲精品综合在线观看| 亚洲怡红院在线| 亚洲怡红院在线| www.-级毛片线天内射视视| 91精品国产三级| 91成人综合网| 国产精品自拍片| 免费一级特黄录像| 久久成年人网站| 成人午夜视频免费观看| 777精品久无码人妻蜜桃| 国产1区2区在线| 天天干天天玩天天操| 国产美女视频免费| 国产成人永久免费视频| 茄子视频成人免费观看| 在线观看岛国av| 69精品丰满人妻无码视频a片| 久久综合色视频| 国产一级免费大片| 成人在线国产视频| 999在线免费视频| 超级碰在线观看| 能在线观看的av| 黄色网址在线免费看| 337p粉嫩大胆噜噜噜鲁| 日韩成人精品视频在线观看| 99热一区二区三区| www.在线观看av| 免费看又黄又无码的网站| 亚洲午夜精品一区| 久久久无码中文字幕久...| 熟女视频一区二区三区| 性欧美大战久久久久久久| 国产原创精品在线| 99九九精品视频| av 日韩 人妻 黑人 综合 无码| 成年人黄色片视频| 久热在线视频观看| 老子影院午夜伦不卡大全| 黄色一级大片在线观看| 拔插拔插华人永久免费| 国产精品久久久久9999爆乳| 蜜臀av性久久久久蜜臀av| 在线免费视频一区| 日韩精品久久一区二区| 色婷婷综合久久久久中文字幕 | 在线观看中文av| 被灌满精子的波多野结衣| 男人舔女人下面高潮视频| 中文字幕无码精品亚洲资源网久久| 精品国产成人av在线免| 最新黄色av网站| 日本精品免费视频| 成人在线激情网| 日日噜噜噜夜夜爽爽| 永久免费黄色片| 亚洲欧美日韩三级| 黄色www网站| 国产一级做a爰片久久| 青青青在线视频免费观看| 99re6这里有精品热视频| 2025韩国理伦片在线观看| 黄色三级视频在线| 久久综合色视频|