資料結構上機 雙向起泡排序

2021-10-12 07:08:26 字數 877 閱讀 2936

相比於傳統的氣泡排序

雙向氣泡排序做了兩點優化:

1、利用flag標記有無資料交換,防止在資料有序的情況下再次浪費時間

2、每次迴圈,從前往後又從後往前,每次確定乙個大的乙個小的,大小通吃

//雙向起泡排序的程式**

#include

#include

#include

//順序表結構型別定義

typedef

int datatype;

typedef

struct

sequenlist;

void

create

(sequenlist,

int)

;void

print

(sequenlist,

int)

;void

dbubblesort

(sequenlist,

int)

;int

main()

//建立順序表

void

create

(sequenlist r,

int n)

//輸出順序表

void

print

(sequenlist r,

int n)

//新增雙向起泡排序演算法

void

dbubblesort

(sequenlist r,

int n)}if

(flag==0)

break

; high--

;for

(i=high;i>low;i--)}

low++;}

}

c 資料結構 交換排序(起泡排序)

1.演算法思想 兩兩比較相鄰的關鍵碼,如果反序,則要交換位置,直到沒有反序記錄為止 2.每一趟起泡排序前,令exchange的初值 0 在以後的排序過程中,只要有記錄交換 exchange就不為0 所以,一趟比較結束時,可以通過exchange的值是否為0來判斷是否有記錄交換,從而判別整個氣泡排序的...

資料結構交換排序之起泡排序 參考嚴蔚敏資料結構

開始時是整個順序表都是無序的,就算有序計算機也不知道 而後逐步擴大有序序列,減小無需序列 有序序列在表後,無序序列在表前,且有序序列中的key最小的元素的key都大於無序序列中的任意乙個元素的key includeusing namespace std define n 8 void bubble ...

資料結構上機2 1

include include define maxsize 50 typedef char elemtype typedef struct sqlist 尾插法線性表 void initlist sqlist l 初始化線性表 void destroylist sqlist l 銷毀線性表 boo...