冒泡排序(PHP代碼)

2021-01-08 愛學習的寧西

學習冒泡排序的原理和相關代碼

冒泡排序

冒泡排序的原理:

舉例說明,相關原理

代碼實際操作:

PHP代碼(冒泡排序)

解釋:為了方便理解,在第6行自定義了一個簡單的數組 array(4,3,2,1)。

在代碼中有兩層for循環,一個if判斷

第一層for循環控制趟數,第15行($i < $len - 1)就是控制行數,這取決於數組內部數的個數。(本案例有4個數值,它的趟數為3)

第二層for循環控制數的比較次數,第17行($k < $len - 1 - $i)這是數組內數與數 比較的次數,為什麼要減 $i,因為 $i 正好符合這裡面的需求,在第一趟中數與數之間的比較有3次($len - 1,其中$len等於4),在第二趟中數與數之間的比較有2次,第三趟等後面的都在減1,需要一個變量,$i符合需求,第一次為0、第二次為1、第三次為2。

if判斷,第19行用來判斷,數組前一個數,是否大於後一個數,如果大於,就將它們的數換位置(例如:數組第一個:4,數組第二個:3, 4>3 將數組第一個與第二個換位置 ,後面的也如此),進行存放,直到數組最後一個數。

效果圖片:

排序結果

相關焦點

  • PHP的三種排序方式
    數組排序排序基礎大約有幾十種方法的排序;php中,排序相當簡單:一個函數搞定!——他們按正序排列了,下標變成了0,1,2,3,4//asort($arr5); //也排完了——他們按正序排列了,而且下標還保持關係rsort($arr5); //又排完了——他們按倒序排列了更多詳見:冒泡排序$a1 = array( 8, 10, 3, 7, 11, 5 );冒泡排序規律:
  • 筆試題:編寫插入排序代碼,比冒泡排序還簡單(附代碼)
    最近有同事跳槽某大企業(「**在手,說走就走」),竟然被問到簡單的排序算法,不過不是大家耳熟能詳的冒泡排序,而是插入排序。本文將詳細說明插入排序算法的原理與具體實現代碼,以供大家參考、學習。第一輪、第二輪代碼這裡將第一輪和第二輪插排的代碼詳細注釋了出來,以供大家深入理解,由此推理更普遍的情況.
  • 使用PHP完成冒泡排序算法
    原理本文使用的排序數組數據如下:$arr1 = array(18,22,12, 15,23,9);遍歷一個數組,在此過程中,將相鄰的兩個單元的值進行比較(倆倆相比,左邊比右邊大就對換位置):3.每趟要比較的次數都比前一趟少1次,第一趟要比較的次數為:$n-1代碼編寫總結了規律,接下來就是寫排序算法了,下面為冒泡排序的代碼:
  • PHP如何實現選擇排序
    選擇排序在冒泡排序的基礎上進行了改進,每次通過列表時只進行一次傳遞交換。簡單來說,選擇排序的原理就是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。 選擇排序是不穩定的排序方法。
  • 冒泡排序算法由一個什麼循環控制? - php中文網
    本篇文章主要給大家介紹冒泡排序由一個什麼循環控制的,那麼冒泡排序算法可以由雙層for循環實現,也可以由單個for循環實現。下面我們就結合具體的代碼示例,給大家介紹冒泡排序的實現方法!一、什麼叫冒泡排序法?
  • Java實現冒泡排序算法
    從這一篇開始,我們把每一種排序算法,從算法的思想,到代碼實現都做一個分享。那麼你準備好了嗎?我們這一篇的主角是:冒泡排序#考考你:1.你知道冒泡排序的核心思想嗎?2.你能用java實現冒泡排序嗎?3.你能寫出更優秀的冒泡排序代碼嗎?
  • 排序算法之冒泡排序及其優化
    冒泡排序思想比較相鄰兩個元素,如果前面的元素比後面的元素大,則交換位置。最後一個元素必定會是最大值。排除掉最後一位元素,繼續循環,直至沒有元素需要比較可以看出,冒牌排序其實和選擇排序時很像的,只不過選擇排序是比較數據,先記錄下最小/大值的下標,等一趟循環結束的時候再交換位置;而冒泡排序在比較數據的同時也做了交換。性能時間複雜度與選擇排序一樣,時間複雜度為O(n^2)。
  • Python中的冒泡排序算法,冒泡排序的優缺點,中級python技術點
    Python中的冒泡排序算法冒泡排序是最直接的排序算法之一。它的名字來自於算法的工作方式:每經過一個新遍歷,列表中最大的元素就會向正確的位置「冒泡」。冒泡排序包括對列表進行多次遍歷、逐個比較元素以及交換順序混亂的相鄰項。
  • 單集合排序:冒泡排序法
    在日常開發中經常會遇到一類問題,就是對一個集合的數據進行排序掌握一些排序算法,對於日常開發是非常有幫助今天介紹一下冒泡排序法01算法邏輯>02時間複雜度由上圖邏輯可以得出,冒泡排序的循環次數為由循環次數可以得出,冒泡排序的時間複雜度為03空間複雜度由上圖邏輯可以得出
  • 圖解C語言冒泡排序算法,含代碼分析
    冒泡排序算法的原理
  • 排序算法總結(1):冒泡排序
    圖-冒泡排序示例圖以上圖為例,演示一下冒泡排序的實際流程:假設有一個無序序列  { 4. 3. 1. 2, 5 }第一趟排序:通過兩兩比較,找到第一小的數值 1 ,將其放在序列的第一位。第二趟排序:通過兩兩比較,找到第二小的數值 2 ,將其放在序列的第二位。
  • Python實現冒泡排序
    我們就用Python實現冒泡排序冒泡排序要學習冒泡排序必須知道它的原理:所謂冒泡,就是將元素兩兩之間進行比較,誰大就往後移動,直到將最大的元素排到最後面,接著再循環一趟,從頭開始進行兩兩比較,而上一趟已經排好的那個元素就不用進行比較了。
  • Java、Python冒泡排序法
    冒泡排序算法思想:讓數組中的兩個相鄰數字進行比較,數組中較大的值向下沉,值小的上浮,就類似於水中的氣泡,較大的下沉,較小的上升,慢慢冒出來。簡單的說就是數值大的會慢慢往前排,數據值小的會慢慢向後排,最終實現由小到達排列,最小的排在最前,最大的排到最後。
  • JavaScript面經之冒泡排序
    文/大白老師圖/大白老師我們去大廠面試前端的時候,最容易被問及的一個內容就是排序,而其中,冒泡排序作為最基礎的排序算法,很多時候是被要求進行手寫代碼的,面試官通過對手寫代碼的考察,可以看出求職者的算法基礎功底、JavaScript語言功底以及在開發時,對變量的語義化水平
  • JavaScript算法之冒泡排序
    冒泡排序是討論最多的算法之一,它比較容易理解,但是效率較低。如果數組是已排序的,冒泡排序只需要遍歷一次數組,不過最壞的情況下運行時間為 O(n2),非常低效。儘管如此,理解這個算法依然很重要,需要明白它為什麼效率低下。本文將介紹實現冒泡排序的兩個思路。
  • 結合數組,在VBA中實現冒泡排序
    大家好,今日我們繼續講解VBA數組與字典解決方案,今日講解第50講:結合數組,在VBA中實現冒泡排序。大家要好好掌握,但實際的工作中也有最為普通的排序要求。還有就是我們要理解排序的理論,我們今日講解的是冒泡排序在VBA中的實現。在排序中,冒泡排序是最為基本的排序方法,我們可以借鑑這種思路。
  • 看動畫學算法之:排序-冒泡排序
    簡介排序可能是所有的算法中最最基礎和最最常用的了。排序是一個非常經典的問題,它以一定的順序對一個數組(或一個列表)中的項進行重新排序。排序算法有很多種,每個都有其自身的優點和局限性。今天我們來學習最最簡單的冒泡排序算法。冒泡排序的原理冒泡排序的原理很簡單,我們想像一下一個一個的氣泡上浮的過程。
  • Java中常見的排序算法有哪些?---冒泡排序
    排序相關的的基本概念排序: 將一組雜亂無章的數據按一定的規律順次排列起來。數據表( data list): 它是待排序數據對象的有限集合。排序碼(key):通常數據對象有多個屬性域,即多個數據成員組成,其中有一個屬性域可用來區分對象,作為排序依據。該域即為排序碼。
  • 經典排序算法一 冒泡排序(JAVA實現)
    冒泡排序原理:相鄰的兩個元素進行比較,將值大的元素移動到右端。冒泡排序實現思路:遍歷要排序的元素,依次比較相鄰的兩個元素,值大的移動到右端,則第二次就可以忽略第一次遍歷放在最右端的元素,依次類推直到遍歷到n-1次只剩下2個元素進行比較,冒泡排序結束。
  • 圖文詳解冒泡排序
    圖1 冒泡排序的基本原理圖1展示了冒泡排序的基本原理。整個排序過程完成。從以上對算法原理的講解中,我們首先可以知道冒泡排序是一種交換排序,它需要進行大量的交換操作。其次,因為當兩個元素相等時它們不會被交換,所以相等元素的相對位置在排序前後不會改變,因此冒泡排序又是一種穩定的排序算法。假設我們有一個序列,它的元素分別為整數48、12、52、36、5,那麼圖2至圖5則詳細地展示了對該序列進行冒泡排序的整個過程。