相比於傳統的氣泡排序
雙向氣泡排序做了兩點優化:
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...