php冒泡和選擇排序

2021-08-01 17:36:00 字數 2177 閱讀 4627

$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 以增序為列 思路 這種氣泡排序核心思想等同於選擇排序,但並不會提取最值,比較次數等同於...