快速排序與冒泡排序區(qū)別 請(qǐng)問(wèn)冒泡排序和快速排序有什么區(qū)別?
請(qǐng)問(wèn)冒泡排序和快速排序有什么區(qū)別?氣泡排序從最低級(jí)別的元素開(kāi)始(與上面的元素相比)。如果它小于,它上升然后比較,如果它大于,它交換,然后比較較小的到最高水平。第一次,把最小的放在頂層,第二次,把最小的
請(qǐng)問(wèn)冒泡排序和快速排序有什么區(qū)別?
氣泡排序從最低級(jí)別的元素開(kāi)始(與上面的元素相比)。如果它小于,它上升然后比較,如果它大于,它交換,然后比較較小的到最高水平。第一次,把最小的放在頂層,第二次,把最小的放在第二層,依此類(lèi)推??焖倥判蚴窍日业揭粋€(gè)軸值,比較時(shí)把較小的放在軸值上,再把大于軸值的放在右邊,然后選擇兩邊的軸值,再按前面排序,直到完成為止。
對(duì)同一個(gè)基本有序的待排序列分別進(jìn)行堆排序、快速排序和冒泡排序?
它是冒泡排序、冒泡排序、快速排序、堆排序性能比較與排序方法比較次數(shù)移動(dòng)次數(shù)穩(wěn)定性輔助空間最佳最差最佳最差冒泡排序n^20 n^2是1 1快速排序nlogn^2 logn n n no logn堆排序nlogn nlogn no 1 1。當(dāng)要排序的序列基本上是有序的時(shí),冒泡排序是最佳情況,快速排序是最差情況,堆排序是最佳和最差情況。所以答案是氣泡排序。
冒泡排序和快速排序有什么區(qū)別?
氣泡排序是一種交換排序。讓n個(gè)數(shù)據(jù)依次放置在數(shù)組元素a(1)到a(n)中。用氣泡法對(duì)N個(gè)數(shù)據(jù)進(jìn)行增量排序的過(guò)程是:先比較a(1)和a(2),如果順序相反,則進(jìn)行交換,然后比較a(2)和a(3),如果順序相反,則進(jìn)行交換,只有在a(N-1)和a(N)進(jìn)行比較和交換后,第一輪比較交換才完成。然后用相同的規(guī)則進(jìn)行第二次交換,直到數(shù)據(jù)被排序。在最壞的情況下,比較1/2n(n-1)次,交換3/2n(n-1)次??焖倥判蚴侵?jì)算機(jī)科學(xué)家c.a.r.hoare提出的一種基于氣泡排序的高效排序算法。它的基本思想是:在要排序的序列中選擇一個(gè)元素(通常是第一個(gè)元素)x,按照一定的規(guī)則多次交換位置后,它移動(dòng)到一定的位置,對(duì)原序列的位置進(jìn)行劃分,因此,得到的兩個(gè)子序列符合X的排序規(guī)則。在這個(gè)序列中,元素X稱(chēng)為劃分元素。然后,根據(jù)該方法再次劃分兩個(gè)字序列,直到獲得不需要進(jìn)一步劃分的子序列。這個(gè)過(guò)程顯然是遞歸的。在大多數(shù)情況下,快速排序比冒泡排序更有效。如果你需要算法或代碼,你可以改進(jìn)自己。
冒泡排序,插入排序,選擇排序,快速排序的速度大小比較?
我現(xiàn)在明白了。事實(shí)上,這個(gè)比較排名的下界(注意下界是最好的情況)一定是對(duì)的。但有一個(gè)條件,即在排序過(guò)程中,附加的信息或條件不能用來(lái)比較排序的下限。
1. 氣泡排序,它利用了上次掃描中沒(méi)有發(fā)生交換的附加條件。
2. 插入排序,它利用了大量有序元素的額外信息。
3. 快速排序,如果采用三向切分法,可以將其分為與pivot相同、大于pivot和小于pivot,然后利用含有大量重復(fù)元素的額外信息來(lái)突破nlogn。因此,比較排名或下界的最佳情況是nlogn,它不考慮任何附加條件和附加信息。如果你對(duì)數(shù)據(jù)做額外的假設(shè),你就可以突破這個(gè)下限。
冒泡排序法在什么場(chǎng)合下有用?筆試的時(shí)候應(yīng)該寫(xiě)冒泡排序還是快速排序?
氣泡排序算法簡(jiǎn)單,代碼簡(jiǎn)短,易于記憶。適合初學(xué)者,或元素?cái)?shù)不多(少于1000)的場(chǎng)合。缺點(diǎn)是當(dāng)數(shù)據(jù)量較大或每個(gè)元素(記錄)的字節(jié)數(shù)較大時(shí),比較和交換的次數(shù)會(huì)影響效率。原則上,筆試也是上述選擇(當(dāng)對(duì)考試沒(méi)有要求時(shí)),當(dāng)元素?cái)?shù)超過(guò)一萬(wàn)時(shí),應(yīng)選擇快行。