$arr=array('11','1','12','56','596','8','3');
for ($i=0; $i
$arr)-1 ; $i++) }}
print_r($arr);
$arr=['1','9','5','56','8'];
$arr_length=count($arr);
for($i=0;$i
<($arr_length-1);$i++) }}
print_r($arr);
首先將第乙個記錄的關鍵字和第二個記錄的關鍵字進行比較,若為逆序,則將兩個記錄交換,然後比較批二個記錄和第三個記錄的關鍵字,依次類推,直至第n-1個元素和第n個元素進行過比較為止。以上為一次氣泡排序,礤結果是使得關鍵字最大的記錄被安置到最後乙個記錄的位置上。然後進行第二真趟氣泡排序,對前n-1個記錄進行同樣操作,其結果是使關鍵字次大的記錄安置到第n-1人的位置上,如此類似
「` ar
r=ar
ray(
3,5,
−1,0
,2);
for(
i=0;$i
* 理解:
3,5,-1,0,2
//從第乙個數開始往後比較,如果比後面的數大則與後面的數調位置
//第一次,3小於5,那麼不變
//第二次,5大於-1,那麼變成
3,-1,5,0,2
//第三次,5大於0
3,-1,0,5,2
//第四次,5大於2
3,-1,0,2,5
至此完成一次內迴圈,此時最後乙個數完成排序,下次將不參與
3,-1,0,2,5第二次外迴圈開始 第一次:3大於-1
-1,3,0,2,5
第二次:3大於0
-1,0,3,2,5
第三次:3大於2
-1,0,2,3,5
至此完成後面兩位數的排序了,接下來類推
-1,0,2,3,5
二、選擇排序法
說明:先假設第乙個數就是最小的數,然後將後面的數依次與它比較,如果假設的數不是最小的數,就將它與後面的最小的數調換位置
*## 2、簡單選擇排序原理
每一趟在n-i+1(i = 1,2,…,n-1)個記錄中選擇關鍵字最小的記錄作為有序序列中第i個記錄,其中最簡單的是簡單選擇排序,其過程如下:通過n-i次關鍵字間的比較,從n-i+1個記錄中選擇出關鍵字最小的記錄,並各第i個記錄交換之。
## 二、選擇排序法
說明:先假設第乙個數就是最小的數,然後將後面的數依次與它比較,如果假設的數不是最小的數,就將它與後面的最小的數調換位置
複製** **如下:
ar
r=ar
ray(
2,1,
−1,3
,0);
for(
i=0;$i
理解:
2,1,-1,3,0
//先假設第乙個數2為最小值,它後面的數依次與2做比較,尋找到最小的那個數
過程:1小於2,那麼minval=1
-1小於1,那麼minval=-1
3大於-1,不變
0大於-1,不變
那麼現在就找到了該陣列中最小的數了為-1
將-1與2調換位置就完成第乙個數的排序了
那麼現在陣列變成
-1,1,2,3,0
現在第乙個數-1已經為有序,所以不參與比較了,往後面繼續
現在假設minval=1
2大於1,不變
3大於1,不變
0小於1,那麼minval=0
現在一次迴圈完成,調換0與1的位置完成第二個數的排序
那麼現在陣列變成
-1,0,2,3,1
//後面的推法與上面相同。。。
*//*
## 三、插入排序法
說明:先假設乙個陣列中的第乙個數為單獨的有序陣列,再將後面的乙個數與它【這裡隨它i的增長,就變成它們了】做比較,如果後面的數比假設的數還小,則將小的那個數後移,最後將那個數移到最前面
**如下:
ar
r=ar
ray(
2,1,
−1,3
,0);
for(
i=1;$i
選擇排序和氣泡排序
選擇排序和氣泡排序 演算法 蠻力法選擇排序,第一次掃瞄整個陣列,找到最小元素,然後和第乙個元素交換。第二次從第二個元素開始掃瞄陣列,找到剩下的元素中最小的與第二個元素交換位置,直到最後。89 45 68 90 29 3417 17 45 68 902934 89 17 29 68 90 453489...
選擇排序和氣泡排序
選擇 從小到大排序 int a 5 a 0 a 1 a 2 a 3 a 4 5 4 3 2 1 1 5 4 3 2 第一輪比較 拿a 0 和後面的元素依次比較 如果a 0 a i 那麼兩個數交換 1 2 5 4 3 第二輪比較,拿a 1 和後面的元素依次比較,如果a 1 a i 那麼兩個數交換 1 ...
選擇排序和氣泡排序
今天開始寫部落格,加油。1氣泡排序 我沒有選擇使用函式,而是分成了乙個個程式去寫,一是因為函式我自己本來也不熟練,二是感覺分開來寫更加的清晰 1,氣泡排序1 2017年7月11日17 28 13 目的 氣泡排序1 以增序為列 思路 這種氣泡排序核心思想等同於選擇排序,但並不會提取最值,比較次數等同於...