排序之选择排序

选择排序

工作原理:开启一个循环,每轮从未排序区间选择最小的元素,将其放到已排序区间的末尾。

eg: 4 1 3 1 5 2

step1. swap(4,1) 1 4 3 1 5 2

step2. swap(4,1) 1 1 3 4 5 2

step3. swap(3,2) 1 1 2 4 5 3

step4. swap(4,3) 1 1 2 3 5 4

step5. swap(5,4) 1 1 2 3 4 5

c++ 复制代码
#include<iostream>

using namespace std;

int main(){
    int size = 6;
    int nums[] = {4,1,3,1,5,2};
    for(int i = 0;i<size;i++){
        int min = i;
        for(int j = i+1;j<size;j++){
            if(nums[j] < nums[min]){
                min = j;
            }
        }
        int temp = nums[i];
        nums[i] = nums[min];
        nums[min] = temp;
    }
    for(int i = 0;i<6;i++){
        cout<<nums[i]<<" ";
    }
    return 0;
}
相关推荐
重生之后端学习12 小时前
78. 子集
java·数据结构·算法·职场和发展·深度优先
Jasmine_llq12 小时前
<P5464 缩小社交圈>
排序算法·预处理·前缀和与差分·动态规划(区间 dp)·快速读入·模运算处理·区间查询与更新
摸鱼仙人~12 小时前
0-1背包与完全背包:遍历顺序背后的秘密
人工智能·算法
juleskk13 小时前
2.15 复试训练
开发语言·c++·算法
kronos.荒13 小时前
滑动窗口+哈希表:最小覆盖子串
数据结构·python·散列表
那起舞的日子13 小时前
斐波那契数列
java·算法
wostcdk13 小时前
筛质数汇总
数据结构·算法
不吃橘子的橘猫13 小时前
《集成电路设计》复习资料4(Verilog HDL概述)
学习·算法·fpga开发·集成电路·仿真·半导体
宇木灵13 小时前
C语言基础-五、数组
c语言·开发语言·学习·算法
qq_4542450314 小时前
BuildTemplateGraph 函数深度解析:动态节点图构建的架构设计与核心价值
数据结构·c#