Swift代碼完成冒泡排序算法的復雜實例。本站提示廣大學習愛好者:(Swift代碼完成冒泡排序算法的復雜實例)文章只能為提供參考,不一定能成為您想要的結果。以下是Swift代碼完成冒泡排序算法的復雜實例正文
冒泡排序原理
1.對需求排序的數據,倆倆停止比擬,小的放後面,大的放前面
2.順次對每一對相鄰的數據作步驟1的任務,當排序到最後一個元素的時分,我們能保證這個數據是最大。
3.針對一切的元素反復以上的步驟,除了最後一個(這裡為什麼需求針對除了最後一個元素的全部元素做一次呢,由於最後一個元素曾經是最大的不需求排序了,同時,由於元素的交流,交流下去的元素的大小不一定比後面的元素的大,所以需求再做一次)。
4繼續對越來越少的元素反復3的步驟,直到沒有任何一對元素需求比擬。
時間復雜度
我們普通談最壞時間復制度
n(n-1)/2 = O(n²)
算法波動性
相反元素的前後順序並沒有改動,所以是一種波動排序算法
import Cocoa var array = [123,234,12,346,4,75,67,234,23,1233,3,5,986,98,567,345,234,234] println("排序前的值:") for item in array { var ii = item println(ii) } for var i = 0; i < array.count - 1; ++i { for var j = 0; j < array.count - 1 - i; ++j{ if array[j] > array[j + 1] { var temp = array[j + 1] array[j + 1] = array[j] array[j] = temp } } } println("排序後的值:") for item in array { var ii = item println(ii) }
運轉後果:
這裡的for循環運用的是C外面傳統的for循環方式,請各位指教、以及拍磚!