自我對氣泡排序以及對快速排序的理解

2021-08-03 17:00:11 字數 1082 閱讀 5517

首先呢,我們閒話少說,直接入主題吧

冒泡:其實冒泡就是一組資料,讓它們左右兩位進行排序,若陣列的要求是要從大到小排序,那麼就讓小的數與大的數交換位置,交換位置就是根據for裡面的key值進行交換,但是還有一點就是不得不提的就是,我們需要給這個排序乙個標誌,在排序的開始,我們讓這個標誌位false,最後再for裡面進行交換位置的時候,我們再把這個標誌換成true

**如下:

function maopao($arr)

}if(! $flag)//本趟排序未發生交換,提前終止演算法

return $arr;

}}$shuz = array('12','44','1','84','5');

$bb = maopao($shuz);

print_r($bb);

echo "

";接下來,我們說一下,那個快速排序法

其實相比而言的話,我個人認為這個快速比這個冒泡法方便一下,好了,閒話少說,直入主題

首先快速排序法,它所進行排序的根據,就是這個陣列裡面的乙個基數,一般我們都會取這組陣列的最後

乙個元素或者第一元素作為這個被比較的基數,我們需要建立兩個陣列,然後再for裡面,讓其他值分別與

該基數進行比較,若大於基數則就放到乙個陣列裡面,若小於的話就放到另乙個陣列裡面,最後呢,我們

再用array_merge函式將這三個陣列拼成乙個陣列,這便是排序

**如下:

function kuaisu($arr)

$key = $arr[0];

$left_arr = array();

$right_arr = array();

for($i=1; $i<$len;$i++)else

}$left_arr = kuaisu($left_arr);

$right_arr = kuaisu($right_arr);

return array_merge($left_arr, array($key), $right_arr);

}$arr = array(23,98,54,2,9,62,34);

print_r(kuaisu($arr));

Python對列表排序 氣泡排序

直接用列表自帶函式排序,sort 方法預設公升序,將引數reverse改為true,改為降序 list 7,4,3,67,34,1,8 list sort print list 1,3,4,7,8,34,67 list sort reverse true print list 67,34,8,7,4...

快速排序是對冒泡法排序的一種改進。

快速排序演算法 的基本思想是 將所要進行排序的數分為左右兩個部分,其中一部分的所有資料都比另外一 部分的資料小,然後將所分得的兩部分資料進行同樣的劃分,重複執行以上的劃分操作,直 到所有要進行排序的資料變為有序為止。可能僅根據基本思想對快速排序的認識並不深,接下來以對n個無序數列a 0 a 1 a ...

逆序對 超快速排序

在這個問題中,您必須分析特定的排序演算法 超快速排序。該演算法通過交換兩個相鄰的序列元素來處理n個不同整數的序列,直到序列按公升序排序。對於輸入序列9 1 0 5 4,超快速排序生成輸出0 1 4 5 9。您的任務是確定超快速排序需要執行多少交換操作才能對給定的輸入序列進行排序。輸入格式 輸入包括一...