美文网首页
简单选择排序算法

简单选择排序算法

作者: linbj | 来源:发表于2017-12-27 11:54 被阅读3次

在简单选择排序过程中,所需移动记录的次数比较少。最好情况下,即待排序记录初始状态就已经是正序排列了,则不需要移动记录。

最坏情况下,即待排序记录初始状态是按第一条记录最大,之后的记录从小到大顺序排列,则需要移动记录的次数最多为3(n-1)。简单选择排序过程中需要进行的比较次数与初始状态下待排序记录序列的排列情况无关。当i=1时,需进行n-1次比较;当i=2时,需进行n-2次比较;依次类推,共需要进行的比较次数是(n-1)+(n-2)+…+2+1=n(n-1)/2,即进行比较操作的时间复杂度为O(n^2),进行移动操作的时间复杂度为O(n)。

简单选择排序是不稳定排序。

image.png

每一趟选出最小的数放到前面

NSMutableArray *arrSort = [NSMutableArray arrayWithArray:@[@(7), @(3), @(15), @(5), @(11), @(2), @(4), @(9), @(6)]];

- (void)selectionSort:(NSMutableArray *)arrSort {
    int i ;
    for (i = 0; i < arrSort.count-1; i++) {
        int temp = 0;
        for (int j = i + 1; j < arrSort.count; j++) {
            if (arrSort[j] < arrSort[i]) {
                temp = [arrSort[j] intValue];
                arrSort[j] = arrSort[i];
                arrSort[i] = @(temp);
            }
        }
    }
    NSLog(@"%@",arrSort);
}
第0趟:  2 7 15 5 11 3 4 9 6
第1趟:  2 3 15 7 11 5 4 9 6
第2趟:  2 3 4 15 11 7 5 9 6
第3趟:  2 3 4 5 15 11 7 9 6
 第4趟:  2 3 4 5 6 15 11 9 7
第5趟:  2 3 4 5 6 7 15 11 9
第6趟:  2 3 4 5 6 7 9 15 11
 第7趟:  2 3 4 5 6 7 9 11 15

相关文章

  • 排序算法(四)选择排序

    排序算法(四)选择排序 1.算法思路  选择排序(Selection-Sort)是一种简单直观的排序算法。它的工作...

  • 常用排序算法总结

    一、选择排序 选择排序示意图 选择排序(Selection sort)也是一种简单直观的排序算法。 算法步骤: 1...

  • 选择排序算法

    一、选择排序算法 选择排序(Selection sort)是一种简单直观的排序算法。 二、算法思想 每一次从待排序...

  • 选择排序算法

    选择排序(Selection Sort)算法也是比较简单的排序算法,其思路比较直观。选择排序算法在每一步中选取最小...

  • python实现选择排序(SelectionSort)

    python实现【选择排序】 算法原理及介绍 选择排序(Selection-sort)是一种简单直观的排序算法。它...

  • 基础算法|简单选择排序

    简单选择排序是一种排序算法,指在简单选择排序过程中,所需移动记录的次数比较少。简单选择排序是不稳定排序。 简单选择...

  • 基本排序算法

    冒泡算法 简单选择排序 堆排序 快排 归并排序

  • 算法很难?三分钟带你掌握经典算法「选择排序」

    一、选择排序介绍 选择排序(Selection sort)是一种简单直观的排序算法。 二、算法思想 第 1 趟 从...

  • 排序算法

    常见排序算法及JAVA实现 简单选择排序(SelectSort) 选择排序思想很简单,对所有元素进行遍历,选出最小...

  • 算法-选择排序

    算 法:选择排序算法时间复杂度: 选择排序算法概述 选择排序伪代码 选择排序实现 选择排序算法概述 排序算法有许...

网友评论

      本文标题:简单选择排序算法

      本文链接:https://www.haomeiwen.com/subject/nkxugxtx.html