插入排序

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    int a[n+5];
    for(int i = 1;i<=n;i++){
        cin>>a[i];
    }
    int j;
    for(int i = 2;i<=n;i++){
        j = i;
        while(a[j]<a[j-1] && j>1){
            swap(a[j],a[j-1]);
            j--;
        }
    }
    for(int i = 1;i<=n;i++){
        cout<<a[i]<<" ";
    }
    return 0;
}

从左往右,依次比较相邻的两个元素,如果右元素小于左元素,就交换它俩的位置。如果右元素大于左元素,就让左元素再往前取值(j-1),直到

右元素小于左元素。

posted @ 2024-04-05 09:43  王一行(小号)  阅读(8)  评论(0编辑  收藏  举报