#include <iostream>
using namespace std;
void select_sort(int a[],int length){
    for(int i = 0;i<=length-1;i++){
        for(int j = i+1;j<=length-1;j++){
            if(a[j] < a[i]) {
                int temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
}
int main(void) {
    int a[5] = {4,5,1,3,2};
    int length = sizeof(a)/sizeof(int);
    select_sort(a,length);
    for(int i = 0;i<length;i++){
        cout << a[i] << ' ';
    }
}

把第一个数与后面的数字进行比较,如果第一个数字大于后面的一个数,就把他们进行交换,这样可以一次一次地把数字放到正确的位置

再来一个实例:
image-1668380060053

#include <iostream>
using namespace std;
void sort(int a[],int l,int r){
    for(int i = l;i<=r;i++){
        for(int j = i+1;j<=r;j++){
            if(a[j] < a[i]){
                int temp = a[j];
                a[j] = a[i];
                a[i] = temp;
            }
        }
    }
}
int main(void) {
    int a[1000];
    int n,l,r;
    cin >> n >> l >> r;
    for(int i = 0;i<n;i++){
        cin >> a[i];
    }
    sort(a,l,r);
    for(int i = 0;i<n;i++){
        cout << a[i] <<' ';
    }
}