03数据结构排序算法之简单选择排序

基本思想

简单选择排序(simple selection sort)将数组分为有序区和无序区,每次循环从无序区中选出最小的值放入有序区的最后

比如有个数组@[3,4,1,5,8,2,0,9];
第一步将第0位作为有序区
第二步从第一位到最后一位中找出最小的值
第三步将最小值所在位和第0位做数值交换(3和0做交换)
第四步重复从第二位到最后一位中找出最小的值
第五步将最小值所在位和第1位做数值交换
依次循环下去~~~~~~

Object-C代码实现如下:

/**
 *  简单选择排序
 *
 *  @param dataArray 要排序的数据源
 *
 *  @return 已排序的数据
 */
+ (NSArray *)simpleSelectSort:(NSArray *)dataArray {
    NSMutableArray *resultArray = [NSMutableArray arrayWithArray:dataArray];
    NSInteger min;
    for (NSInteger i = 0; i < resultArray.count; i ++) {
        min = i;//最小值下标
        for (NSInteger j = i + 1; j < resultArray.count; j ++) {
            if (resultArray[min] > resultArray[j]) {
                min = j;//保存最小值下标
            }
        }
        if (min != i) {//交换
            [resultArray exchangeObjectAtIndex:min withObjectAtIndex:i];
        }
        NSLog(@"i=%ld array:%@",(long)i,resultArray);
    }
    
    return  resultArray;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容