YTU 2748 雙向氣泡排序

2021-08-08 00:24:39 字數 1028 閱讀 5048

time limit: 1 sec  

memory limit: 128 mb

submit: 211  

solved: 114 [

submit][

status][

web board]

雙向冒泡從小到大排序演算法描述:

(1)從當前序列的第1個元素開始,對相鄰元素從前往後兩兩比較,不滿足條件(從小到大)則彼此交換,一直到序列結束。此時最後1個元素為最大值。

(2)從當前序列的倒數第2個元素開始,對相鄰元素從後往前兩兩比較,不滿足條件則彼此交換,一直到序列開始。此時第1個元素為最小值。

(3)將第2個元素作為新序列的開始,倒數第2個元素作為新序列的結束,重複(1)~(2),直到新序列沒有元素。

改進的雙向冒泡從小到大排序演算法描述:

(a)在上述演算法第(1)步,記錄每次的交換位置,令high表示最後1次交換位置,若比較過程未發生交換,則演算法結束;

(b)在演算法第(2)步,只需要從high向前比較即可,比較過程中記錄每次的交換位置,令low表示最後1次交換位置,若比較過程未發生交換,則演算法結束;

(c)在演算法第(3)步,令新序列為開始位置為low,結束位置為high,重複(a)~(b),直到新序列沒有元素。

for(i = 0; i

#include

int main()

}break;/*

請在該部分填寫缺少的**

*/break;

}for(i = 0; iprintf("%d ",a[i]);

printf("\n");

return 0;

}n和n個整數

從小到大排序後的數列

6

21 45 85 47 3 15

3 15 21 45 47 85
#include int main()

}break;

for (i = high-1; i > low; i--)

{ if (a[i]仔細閱讀一遍題目意思,順著題目的思路進行補充**即可。

YTU 2748 雙向氣泡排序

雙向冒泡從小到大排序演算法描述 1 從當前序列的第1個元素開始,對相鄰元素從前往後兩兩比較,不滿足條件 從小到大 則彼此交換,一直到序列結束。此時最後1個元素為最大值。2 從當前序列的倒數第2個元素開始,對相鄰元素從後往前兩兩比較,不滿足條件則彼此交換,一直到序列開始。此時第1個元素為最小值。3 將...

1466 雙向佇列

problem description 想想雙向鍊錶 雙向佇列的定義差不多,也就是說乙個佇列的隊尾同時也是隊首 兩頭都可以做出隊,入隊的操作。現在給你一系列的操作,請輸出最後佇列的狀態 命令格式 lin x x表示乙個整數,命令代表左邊進隊操作 rin x 表示右邊進隊操作 rout 右出佇列 lo...

1 5 雙向鍊錶

實現 public class doublelinkedlistdemo 鍊錶操作類 class doublelinkedlist 新增節點 同單向,但有點區別,加上前乙個指標 public void add heronode2 heronode2 temp.next heronode2 heron...