氣泡排序核心思想
演算法最講究的就是演算法的思想,只要將演算法思想想明白了,就可以通過偽**來寫出演算法,那麼再使用對應的語言來實現就可以了。
氣泡排序的核心思想就是通過與相鄰元素的比較和交換,把小的數交換到最前面。因為這個過程類似於水泡向上公升一樣,因此被命名為氣泡排序。
時間複雜度
從演算法思想可知,氣泡排序需要兩個迴圈來控制遍歷,也就是需要n * n趟才能判斷、交換完成。
氣泡排序的時間複雜度為o ( n2 )。
objc版
- (void)bubblesort:(int )array len:(size_t)len
}}}
測試使用
int a[5] = ;
[self bubblesort:a len:sizeof(a) / sizeof(int)];
for (int i = 0; i < sizeof(a) / sizeof(int); ++i)
swift版
func bubblesort(var arr: [int]) ->[int]
}} return arr
}
測試使用
// 由於swift中陣列也是結構體,是值型別,因此需要接收返回值才能得到排序後的陣列
var arr = [5, 3, 8, 6, 4]
arr = bubblesort(arr)
print(arr)
Swift Objc 選擇排序
演算法思想 選擇排序的思想其實和氣泡排序有點類似,都是在一次排序後把最小的元素放到最前面。但是過程不同,氣泡排序是通過相鄰的比較和交換。而選擇排序是通過對整體的選擇。演算法思想 每一趟從前往後查詢出值最小的索引 下標 最後通過比較是否需要交換。每一趟都將最小的元素交換到最前面。objc版 void ...
氣泡排序 排序 氣泡排序
既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...
氣泡排序 氣泡排序法
冒泡法是一種簡單的排序方法,它的實現非常簡單。首先對n個專案進行掃瞄,比較相領兩個專案的大小,若發現違背大小次序則進行互換,由此可以使n個專案中的最大者換到最後。然後對剩下的未排序好的專案再進行掃瞄,使它們的最大者換到表的最後。以此類推,直到將表全部排序好為止。這種排序方法,每遍掃瞄以後,都縮短了待...