您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“PHP怎么實現(xiàn)常用排序算法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“PHP怎么實現(xiàn)常用排序算法”吧!
先貼一張分析常見算法時間復(fù)雜度和穩(wěn)定性的圖
很多phper都不會算法,一般的web開發(fā)也用不上,但我為什么要學(xué)習(xí)呢....就是為了遇到不會算法的程序員可以吊打他們!低調(diào)~~~
1.冒泡排序法
冒泡排序就是把小的元素往前調(diào)(或者把大的元素往后調(diào))。注意是相鄰的兩個元素進行比較,而且是否需要交換也發(fā)生在這兩個元素之間。
所以,如果兩個元素相等,我想你是不會再無聊地把它們倆再交換一下。
如果兩個相等的元素沒有相鄰,那么即使通過前面的兩兩交換把兩個元素相鄰起來,最終也不會交換它倆的位置,所以相同元素經(jīng)過排序后順序并沒有改變。
所以冒泡排序是一種穩(wěn)定排序算法。
2.選擇排序法
選擇排序即是給每個位置選擇待排序元素中當前最小的元素。比如給第一個位置選擇最小的,在剩余元素里面給第二個位置選擇次小的,
依次類推,直到第n-1個元素,第n個元素不用選擇了,因為只剩下它一個最大的元素了。
那么,在一趟選擇時,如果當前鎖定元素比后面一個元素大,而后面較小的那個元素又出現(xiàn)在一個與當前鎖定元素相等的元素后面,那么交換后位置順序顯然改變了。
呵呵!比較拗口,舉個例子:序列5 8 5 2 9, 我們知道第一趟選擇第1個元素5會與2進行交換,那么原序列中兩個5的相對先后順序也就被破壞了。
所以選擇排序不是一個穩(wěn)定的排序算法。
到此,相信大家對“PHP怎么實現(xiàn)常用排序算法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。