算法入門-數(shù)組之選擇排序

選擇排序

選擇排序是一種比較直觀的排序算法。它通過不斷的在未排序的數(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、維基百科

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,044評論 0 2
  • 基礎(chǔ)篇NumPy的主要對象是同種元素的多維數(shù)組。這是一個所有的元素都是一種類型、通過一個正整數(shù)元組索引的元素表格(...
    oyan99閱讀 5,290評論 0 18
  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,301評論 0 52
  • 2018年3月4日,新學年開學前一天,全體教師到崗,迎接開學! 上午8:30集中,3人請假,1人遲到! 任務(wù):打掃...
    甲午之印閱讀 181評論 0 0
  • 關(guān)于她,我最心疼的一個人。 從來沒有一個人把你當成生命,然而這個人卻視你如命。 一起走過的田徑場,一起吃過的有味道...
    小枝丫閱讀 460評論 0 1

友情鏈接更多精彩內(nèi)容