選擇排序
選擇排序是一種比較直觀的排序算法。它通過不斷的在未排序的數(shù)組中找出最?。ù螅┑臄?shù),然后將它放在已排序數(shù)組的末尾,當未排序的數(shù)組的個數(shù)小于等于1的時候,排序完成。
關(guān)鍵步驟:
1、將需要排序的數(shù)組分為兩部分,取變量 i 表示已排序數(shù)組的坐標。
2、取變量 j = i + 1 表示未排序的數(shù)組的起始位置,count 表示數(shù)組個數(shù) ,j 到 count 表示未排序的數(shù)組,遍歷未排序的數(shù)組找到最小數(shù)的坐標min,將 min 放到已排序數(shù)組的末尾,i ++。
3、重復(fù)以上步驟,如果 i = count - 1,那么數(shù)組排序完畢。
代碼實現(xiàn)(Objective-c):
-(void)selectedSort:(NSMutableArray *)mularray {
int count = (int)mularray.count;
for (int i = 0; i < count - 1; i++) {
int min = i;
for (int j = i + 1; j < count; j++) {
if (mularray[min] > mularray[j]) {
min = j;
}
}
[mularray exchangeObjectAtIndex:min withObjectAtIndex:i];
NSLog(@"%@", mularray);
}
}
圖片解析:

選擇排序
步驟解析:
1、i = 0,從25,12,22,11中找出最小的數(shù)11,將11和已排序數(shù)組的末尾(0)交換。
此時數(shù)組為:11,25,12,22,64
2、i = 1,從12,22,64中找出最小的數(shù)12,將12和已排序數(shù)組的末尾(1)交換 。
此時數(shù)組為:11,12,25,22,64
3、i = 2,從22,64中找出最小的數(shù)22,將22和已排序數(shù)組的末尾(2)交換 。
此時數(shù)組為:11,12,22,25,64
4、i = 3,將64和已排序數(shù)組末尾(3)的數(shù)比較,不需要交換 。
5、i = 4,此時i == 5 - 1,排序完成 。
參考資料:
1、GeeksforGeeks
2、維基百科