氣泡排序演算法分析,這裡資料給的簡單點:
3 2 1.
要把這三個數字按從小到大(這個一般為正序)排列,也就是排出1 2 3的結果.
具體看**,大於就是正序,小於則相反
冒泡的做法:(這裡是前乙個數字比後乙個大的話 就交換位置)
第一趟:
1. 3 > 2 ?交換位置 此時:2 3 1
2. 3 > 1 ? 交換位置 此時:2 1 3
此時3已經到數列末尾了,結束第一趟
第二趟:這裡從第乙個數字開始
3. 2 > 1 ? 交換位置 此時:1 2 3
冒泡分析:
外迴圈控制的是每一趟交換的次數,他總為n - 1次(n為要排序的數字個數)
內迴圈控制趟的次數,所以總為n - i - 1次。
這裡簡化了大多步驟,多為個人經驗,具體可以去看複雜度分析
複雜度:(一般為時間複雜度,它與空間複雜度是互補的)
複雜度是怎麼算出來的呢,"一般" 的演算法特別好知道,只要知道有多少層迴圈就行了。
沒有迴圈:稱為常數階,為o(1)
一層迴圈:稱為線性階,為o(n)
兩層迴圈:稱為平方階,為o(n²)
…特殊:
在迴圈裡加了其他的便於減少執行時間的語句
例如:二分法查詢,複雜度為o(logn),稱為線性對數階
複雜度為o(n平方)
//cpp
void
maopao
(int a,
int n)}}
}
氣泡排序法,cpp實現
首先,從頭開始往後掃瞄整個序列,在掃瞄過程中逐次比較相鄰兩個元素的大小.若相鄰兩個元素中,前面的元素大於後面的元素,則將它們互換,最後整個序列中最大者換到了最後的位置.然後將最大乙個元素除外,用相同的辦法掃瞄其他資料直到整個序列有順序為止.include define len 9 using nam...
CPP氣泡排序,插入排序,快速排序,等
include include include include include include using namespace std class person person const char n,int age,const char ad name n age age addr ad pers...
氣泡排序 排序 氣泡排序
既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...