雙向氣泡排序

2021-08-28 16:22:14 字數 444 閱讀 8645

演算法思想:

在正反兩個方向交替進行掃瞄,即第一趟把關鍵字最大的元素放到序列的最後面,第二趟把關鍵字最小的元素放到序列的最前面,如此反覆

演算法實現:

跟普通冒泡差不多,就是多設兩個指標來控制邊界就可以了

#include using namespace std;

void dobubblesort(int a,int left,int right)

}high--;

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

}low++;

}}int main()

dobubblesort(a,1,n);

for(int i = 1 ; i <= n ; i++)

cout << endl;

return 0;

}

雙向氣泡排序

這是完全自主編碼,哈哈。但是思想還是書上先有的,但是沒有具體 下面是執行結果截圖,輸入的為23 45,2,15,9 冒牌排序流程如下,一次正向冒泡,從左至右。然後一次反向冒泡,從右至左。第一次把最大的記錄放到表尾,第二次將最小記錄放到表頭,如此反覆。pos 0 記錄無序序列的第乙個位置0,pos 1...

雙向氣泡排序

includeusing namespace std typedef struct node node,linklist void sort linklist l else p p next tail p p tail prior while exchange p prior head p p pr...

氣泡排序 與 雙向氣泡排序

public class test if k 0 break last k public static void bidirectionalbubblesort int a last k for int m last m first m first k if first last break pub...