把雜亂無章的數(shù)據(jù)變?yōu)橛行虻臄?shù)據(jù),這一過程稱為排序.冒泡排序是其中一種最基礎(chǔ)的排序方法,其中的升序是把數(shù)列中把較小的數(shù)據(jù)逐次向上推移的一種排序技術(shù).它的方法是把待排序的n個元素的數(shù)組看成是垂直堆放的一列數(shù)據(jù),從最下面一個元素起,自下而上的比較相鄰兩個元素中的數(shù)據(jù),如果較小的數(shù)據(jù)在下面,那將較小的數(shù)據(jù)換到上面的元素中(否則不交換).重復(fù)這一過程,直到處理完最后兩個元素中的數(shù)據(jù),稱為一遍加工,當(dāng)?shù)?遍加工完成時,最小的數(shù)據(jù)已經(jīng)上升到第1個元素的位置;第2遍加工對余下的n-1個元素重復(fù)上述處理過程,第2遍加工完成后剩下最小的數(shù)據(jù)上升到第2個位置;直到n-1遍加工完成后發(fā)現(xiàn)數(shù)據(jù)完成了從小到大的排序.
假設(shè)有4個數(shù)據(jù):27 36 32 18,需要4-1=3遍加工
第1遍加工如下:
第2遍加工如下:
第3遍加工如下:
假設(shè)4個數(shù)據(jù)放在數(shù)組d(1),d(2),d(3),d(4)第1遍:比較d(j)、d(j-1),j=4,3,2,比較3次;第2遍:比較d(j)、d(j-1),j=4,3,比較2次;第3遍:比較d(j)、d(j-1),j=4,比較1次;
(1)假設(shè)另有一組未經(jīng)排序的數(shù)據(jù)如下:
45 67 23 87 13 30
按照上述規(guī)則進(jìn)行從小到大冒泡排序,第一遍加工完成后這6個數(shù)的位次應(yīng)該是13 456723873013 4567238730
冒泡排序?qū)?yīng)流程圖片段如下:
(2)下面程序片段要實(shí)現(xiàn)數(shù)據(jù)d(1)..d(n)的從小到大排序,請根據(jù)上面流程圖說明,填寫中間部分代碼:…
For i=1to n-1'1到n-1遍加工
Next i…
【考點(diǎn)】冒泡排序算法及其實(shí)現(xiàn).
【答案】13 4567238730
【解答】
【點(diǎn)評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:17引用:1難度:0.1
相似題
-
1.有如下 Python 程序段:
運(yùn)行后列表中的值可能是( ?。?/h2>發(fā)布:2024/12/18 21:0:2組卷:5引用:3難度:0.3 -
2.用VB編寫的函數(shù)bubble_sort是一個用冒泡方法實(shí)現(xiàn)排序的函數(shù),其調(diào)用時需要三個參數(shù):布爾類型參數(shù)sx來確定是升序還是降序,sx為True時為升序,否則為降序;整數(shù)型數(shù)組a
比如有一個整數(shù)型數(shù)組a(1 to 10)需要降序排序,可以直接這樣調(diào)用:
a
該函數(shù)VB代碼如下:
Function bubble_sort(sx As Boolean,a
Dim i,j,t As Integer
For i=1 To n-1
For j=
If
If a(j)<a(j-1)Then t=a(j):a(j)=a(j-1):a(j-1)=t
Else
If a(j)>a(j-1)Then t=a(j):a(j)=a(j-1):a(j-1)=t
End If
Next j
Next i
bubble_sort=a
End Function
請將代碼補(bǔ)充完整:
①
②發(fā)布:2024/12/20 20:30:1組卷:23引用:2難度:0.3 -
3.用選擇排序法對一組數(shù)據(jù)進(jìn)行升序排序,第一趟排序結(jié)束后的順序?yàn)?、6、9、3、7,則原始數(shù)據(jù)順序不可能的是( )
發(fā)布:2024/12/18 23:0:1組卷:10引用:1難度:0.5
把好題分享給你的好友吧~~