選擇排序(selection sort)
是一種簡單直觀的排序演算法。
工作原理:
第一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,然後再從剩餘的未排序元素中尋找到最小(大)元素,然後放到已排序的序列的末尾。以此類推,直到全部待排序的資料元素的個數為零。選擇排序是不穩定的排序方法。
oc demo
//演算法封裝方法
- (nsarray *)selectsortmethod:(nsarray *)dataarr
nsmutablearray *temparr = [nsmutablearray arraywitharray:dataarr];
nsinteger minindex;
for (nsinteger i = 0 ; i < temparr.count - 1; i++)
}if (i != minindex)
}return temparr;
}//列印陣列結果輸出為一行
- (void)showbubblesortresult:(nsmutablearray * )array
nslog(@"%@",str);
nslog(@"<**********===>");
}nsarray *oringelist = @[@(10),@(1),@(2),@(9),@(-1),@(7),@(19),@(5),@(-9),@(3),@(8),@(13),@(17)];
nsmutablearray * afterlist = [nsmutablearray arraywitharray:[self selectsortmethod:oringelist]];
[self showbubblesortresult:afterlist];
func selectionsortmethod(_ nums: [int]) -> [int] //必須大於1才能使用
var array = nums
var minindex: int
for i in 0 ..< array.count - 1
}if i != minindex
} return array
}let oringelist = [10,1,2,9,-1,7,19,5,-9,3,8,13,17]
let afterlist = selectionsortmethod(oringelist)
print(oringelist)
print("*****=")
print(afterlist)
swift demo
IOS演算法 二 之選擇排序
選擇排序 每一趟從待排序的 資料元素 中選出最小 或最大 的乙個元素,順序放在已排好序的數列的最後。直到所有待排序的資料元素排完。選擇排序 是不穩定的排序方法。選擇排序 比方在乙個長度為n的無序陣列中。在第一趟遍歷n個資料,找出當中最小的數值與第乙個元素交換,第二趟遍歷剩下的n 1個資料,找出當中最...
iOS選擇排序
選擇排序是不穩定的排序方法。時間複雜度 選擇排序的交換操作介於 0 和 n 1 次之間。選擇排序的比較操作為 n n 1 2 次之間。選擇排序的賦值操作介於 0 和 3 n 1 次之間。比較次數o n 2 比較次數與關鍵字的初始狀態無關,總的比較次數n n 1 n 2 1 n n 1 2。交換次數o...
演算法 選擇排序,例項分析選擇排序演算法
選擇排序,將乙個序列看做兩個部分,前面有序,後面無序,每次在後面的無序序列中,選擇乙個最小的元素,交換到前面有序序列的末尾,直到無序序列全部完成交換,即可完成排序 選擇排序是不穩定的排序演算法 有乙個序列 5,2,0,1,3,1,4 第一趟排序 第二趟排序 此時我們看到,經過兩趟排序,前面兩個元素 ...