ios 演算法值選擇排序

2021-10-25 15:12:13 字數 1414 閱讀 9713

選擇排序(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 第一趟排序 第二趟排序 此時我們看到,經過兩趟排序,前面兩個元素 ...