1、排序
---- 假設含有n個記錄的序列為,其相應的關鍵字分別為,需確定一種排列,使其相應的關鍵字
滿足非遞減/非遞增的關係,即使得序列稱為乙個按關鍵字有序的序列,這樣的操作就稱為排序。
2、排序的穩定性
---- 假設ki=kj(1<=i排序後ri仍然領先於rj,則稱所用的排序方法是穩定的,反之,
若可能使得排序後的序列中rj領先ri,則稱所用的排序方法是不穩定的。
3、內排序和外排序
---- 內排序是指在排序的整個過程中,待排序的所有記錄全部被放置在記憶體中。外排序是指由於排序的記錄個數太多,不能
同時放置在記憶體,整個排序過程需要在內外存之間多次交換資料才能進行。
---- 按照演算法的複雜度,排序分為兩大類:
---- 氣泡排序、簡單選擇排序和直接插入排序 屬於簡單演算法
---- 希爾排序、堆排序、歸併排序、快速排序 屬於改進演算法
4、氣泡排序(bubble sort)
---- 氣泡排序是一種交換排序,基本思想是:兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。
---- 從後往前進行比較,演算法的**實現如下:
#define maxsize 10
typedef struct
sqlist;
void swap(sqlist *l,int i,int j)
void bubblesort(sqlist *l)
} }}int main()
; for(int i=0;ir[i] = a[i];
} l->length = maxsize;
bubblesort(l);
cout<<"排序後的序列如下:"cout《時間複雜度:o(n^2)
從前往後比較:
void bubble(char *arr,int count)
{ int i,j;
char temp;
for(j=count;j>1;j--)
{ for(i=0;i
氣泡排序 排序 氣泡排序
既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...
氣泡排序 氣泡排序法
冒泡法是一種簡單的排序方法,它的實現非常簡單。首先對n個專案進行掃瞄,比較相領兩個專案的大小,若發現違背大小次序則進行互換,由此可以使n個專案中的最大者換到最後。然後對剩下的未排序好的專案再進行掃瞄,使它們的最大者換到表的最後。以此類推,直到將表全部排序好為止。這種排序方法,每遍掃瞄以後,都縮短了待...
排序 氣泡排序
氣泡排序 氣泡排序 bubble sort 是一種 電腦科學 領域的較簡單的 排序演算法 它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。原理是臨近的數字兩兩進行比較,按照從小到大或者從大到小...