func bubbleSort() -> Void {
let list = NSMutableArray.init(array: [1,4,7,13,33,3,5]);
for i in 0..<list.count-1 {//進(jìn)行六輪冒泡
for j in 0..<list.count-1-i {
let a = list[j] as! NSInteger;
let b = list[j+1] as! NSInteger
if a<b {
list.exchangeObject(at: j, withObjectAt: j+1);
}
}
}
print(list);
}
2镐作、選擇排序 時(shí)間復(fù)雜度為O(n2)
func selectSort() -> Void {
let list = NSMutableArray.init(array: [4,1,7,13,33,3,5]);
for i in 0..<list.count{
var minIndex = i;//默認(rèn)第0個(gè)數(shù)字是最小數(shù)字藏姐,0為最小索引
for j in i+1..<list.count {//假定4為最小數(shù)字,從第1個(gè)開始遍歷
let a = list[j] as! NSInteger;
let b = list[minIndex] as! NSInteger;
if a<b {//
minIndex = j;//如果a比默認(rèn)的最小數(shù)字還小该贾,更新最小索引
}
}
//每輪獲取到最小值的索引后羔杨,進(jìn)行索引值交換
list .exchangeObject(at: i, withObjectAt: minIndex);
}
print(list);
}
3、插入排序 時(shí)間復(fù)雜度為O(n2)
func insertSort() -> Void {
let list = NSMutableArray.init(array: [4,1,7,13,33,3,5]);
let sortList:NSMutableArray = NSMutableArray.init();
for i in 0..<list.count {
let a = list[i] as! NSInteger;
sortList.add(a);
for j in 0..<sortList.count {
let b = sortList[j] as! NSInteger;
if a<b {//新加的元素在數(shù)組末位杨蛋,如果小于數(shù)組中的元素兜材,則交換位置
sortList.exchangeObject(at: j, withObjectAt:sortList.count-1);
}
}
}
print(sortList);
}