之前簡單介紹了流程控制,函式,陣列等。有興趣的可以看看。
php入門之型別與運算子
php入門之流程控制
php入門之函式
php入門之陣列
接下來介紹一下排序,排序是將一組資料,依指定的順序進行排列的過程。常用的排序方法有冒泡法,選擇排序法,插入排序法。
思想:
它重複走過要排序的元素列,依次比較兩個相鄰的元素,如果順序錯誤就把它們交換過來,直到沒有需要交換的為止。
**案例:
<?php
#氣泡排序
$myarr=array(4,3,9,1,6,23.5);
function bubblesort (&$myarr)}}
}bubblesort($myarr);
print_r($myarr); #列印陣列
?>
輸出結果為:
array ( [0] => 1 [1] => 3 [2] => 4 [3] => 6 [4] => 9 [5] => 23.5 )
思想:
假設第乙個為最小(大)元素,依次比較,如果錯誤,交換順序,找到未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。
**案例:
<?php
#選擇排序
$myarr=array(4,3,9,1,6,23.5);
function selectionsort (&$myarr)
}$temp=$myarr[$i];
$myarr[$i]=$myarr[$minindex];
$myarr[$minindex]=$temp;
}}selectionsort($myarr);
print_r($myarr); #列印陣列
?>
輸出結果:
array ( [0] => 1 [1] => 3 [2] => 4 [3] => 6 [4] => 9 [5] => 23.5 )
思想:
插入排序就像我們玩撲克牌,右手為亂排的,我們一張張檢視,為它找合適的位置插入到左手的有序牌中。
插入排序是指在待排序的元素中,假設前面n-1(其中n>=2)個數已經是排好順序的,現將第n個數插到前面已經排好的序列中,然後找到合適自己的位置,使得插入第n個數的這個序列也是排好順序的。按照此法對所有元素進行插入,直到整個序列排為有序的過程,稱為插入排序。
**案例:
<?php
#插入排序
$myarr=array(4,3,9,1,6,23.5);
function insertsort (&$myarr)
#插入(給$insertval找到合適的位置)
$myarr[$insertindex+1]=$insertval;
}}insertsort($myarr);
print_r($myarr);
?>
輸出結果:
array ( [0] => 1 [1] => 3 [2] => 4 [3] => 6 [4] => 9 [5] => 23.5 )
簡單介紹了一下常用的三種排序方法,希望對大家有所幫助。
用php實現基礎演算法之氣泡排序
首先簡單描述一下氣泡排序的基本思想 假設有乙個無序數列 一共有n個元素 我們取出第1個元素與第2個元素做比較,如果第1個元素大於第2個元素,那麼就交換這兩個元素的位置 然後第2個元素再與第3個元素做比較。一直到比較第n 1個元素與第n個元素,這樣經過一輪的比較之後就把最大的數排到了最後面 然後從頭再...
PHP之氣泡排序
昨天去酷狗面試的時候,在筆試那一關,有道要求用php實現氣泡排序的程式設計題,因為實在太久沒用過氣泡排序,忘記了演算法的原理,結果留了空白,實在無語。因此今天把php的氣泡排序 記錄一下 氣泡排序 param array numbers 要排序的陣列,只限數字一維陣列 param boolean a...
php之選擇排序
選擇排序 原理 在一列數字中,選出最小數與第乙個位置的數交換。然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後乙個數比較為止。以下都是公升序排列,即從小到大排列 舉例說明 arr array 6,3,8,2,9,1 第一輪 第一次比較,第乙個數 6 與 3,8,2,9,...