美文网首页
八大排序之选择排序

八大排序之选择排序

作者: Source_Chang | 来源:发表于2020-10-03 09:10 被阅读0次

核心思想:选择一个最 大/小 的元素往 后/前 丢

C++:

void SelectSort::sort(std::vector<int>& arrNumbers) {
    
    for ( int i = arrNumbers.size() - 1; i > 0; --i ) {
        
        int maxIndex = 0;
        for ( int j = 0; j <= i; ++j ) {
            
            if ( arrNumbers[j] > arrNumbers[maxIndex] ) {
                
                maxIndex = j;
            }
        }
        if ( maxIndex != i ) {
            
            std::swap(arrNumbers[maxIndex], arrNumbers[i]);
        }
    }
}

Objective-C:

+ (nonnull NSArray<NSNumber *> *)selectSort:(nonnull NSArray<NSNumber *> *)arrNumbers {
    
    NSMutableArray<NSNumber *> *arrMNumbers = [arrNumbers mutableCopy];
    for ( NSInteger i = arrMNumbers.count - 1; i > 0; --i ) {
        
        NSInteger maxIndex = 0;
        for ( NSInteger j = maxIndex; j <= i; ++j ) {
            
            if ( arrMNumbers[j].integerValue > arrMNumbers[maxIndex].integerValue ) {
                
                maxIndex = j;
            }
        }
        if ( maxIndex != i ) {
            
            NSNumber *temp = arrMNumbers[i];
            arrMNumbers[i] = arrMNumbers[maxIndex];
            arrMNumbers[maxIndex] = temp;
        }
    }
    
    return [arrMNumbers copy];
}

DEMO

相关文章

  • 算法❤ 八大排序算法

    八大排序法【内部排序】:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序 【插入排序】...

  • 八大排序算法

    八大排序:一、直接插入排序 二、希尔排序 三、简单选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序 ...

  • 2020-04-30-排序算法

    冒泡排序 直接选择排序 插入排序 快速排序 参考 算法学习笔记17-经典排序算法八大排序算法稳定性分析

  • 八大排序之选择排序

    核心思想:选择一个最 大/小 的元素往 后/前 丢 C++: Objective-C: DEMO[https://...

  • 八大排序之选择排序

    算法核心思想 选择排序的算法核心思想是从数组中选择最小的元素,放到第一个位置,再从数组 中选择第二小的元素放到第二...

  • JS实现排序算法

    原文:常见排序算法之JavaScript实现 - 知乎 目录 冒泡排序 选择排序 插入排序 合并排序 快速排序 1...

  • 3.1-选择排序-简单选择排序

    参考链接 选择排序:简单选择排序(Simple Selection Sort) 白话经典算法系列之四 直接选择排序...

  • 算法理解之排序-选择排序

    算法理解之排序-选择排序 选择排序是一种简单直观的排序算法, 以当前点为锚点, 向后依次进行比较所有未排序元素, ...

  • iOS话题:算法-排序、二叉树-2020-05-13

    排序 排序是iOS算法中提及最多的话题,比较有名的有八大排序算法。 数据结构常见的八大排序算法(详细整理) 八大排...

  • 3.2-选择排序-堆排序

    参考链接 选择排序:堆排序(Heap Sort) 白话经典算法系列之七 堆与堆排序 堆排序与快速排序,归并排序一样...

网友评论

      本文标题:八大排序之选择排序

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