排序之选择排序

选择排序

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

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;
}
相关推荐
LateFrames11 分钟前
泰勒级数:从 “单点” 到 “理论与实践的鸿沟”
学习·算法
武帝为此25 分钟前
【RC4加密算法介绍】
网络·python·算法
宵时待雨26 分钟前
数据结构(初阶)笔记归纳4:单链表的实现
c语言·开发语言·数据结构·笔记·算法
wm104328 分钟前
代码随想录第三天 链表
数据结构·链表
BLSxiaopanlaile43 分钟前
关于子集和问题的几种解法
数据结构·算法·剪枝·回溯·分解
狐571 小时前
2026-01-17-LeetCode刷题笔记-3047-求交集区域内的最大正方形面积
笔记·算法·leetcode
Yzzz-F1 小时前
P3509 [POI 2010] ZAB-Frog[单调队列+倍增快速幂思想]
算法
代码无bug抓狂人1 小时前
C语言之5位黑洞数
c语言·算法
CodeByV1 小时前
【算法题】BFS:FloodFill
算法
long3161 小时前
弗洛伊德·沃肖算法 Floyd Warshall Algorithm
java·后端·算法·spring·springboot·图论