雙向氣泡排序

2022-06-28 07:51:13 字數 850 閱讀 6906

#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->prior;//

直接交換數值要往後移動指標

} head =p;

}}void create(linklist &l, intn)}

void print(linklist &l)

cout

<< p->data <}int

main()

}return0;

}

基於雙向鍊錶的雙向氣泡排序法

描述有n個記錄儲存在帶頭結點的雙向鍊錶中,利用雙向氣泡排序法對其按上公升序進行排序,請寫出這種排序的演算法。(注:雙向氣泡排序即相鄰兩趟排序向相反方向冒泡)。

輸入多組資料,每組資料兩行。第一行為序列的長度n,第二行為序列的n個元素(元素之間用空格分隔,元素都為正整數)。當n等於0時,輸入結束。

輸出每組資料輸出一行,為從小到大排序後的序列。每兩個元素之間用空格隔開。

輸入樣例 1 

5

4 5 3 2 9

61 3 5 7 9 2

0

輸出樣例 1

2 3 4 5 9

1 2 3 5 7 9

雙向氣泡排序

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

雙向氣泡排序

演算法思想 在正反兩個方向交替進行掃瞄,即第一趟把關鍵字最大的元素放到序列的最後面,第二趟把關鍵字最小的元素放到序列的最前面,如此反覆 演算法實現 跟普通冒泡差不多,就是多設兩個指標來控制邊界就可以了 include using namespace std void dobubblesort int...

氣泡排序 與 雙向氣泡排序

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...