noip普及组3:排序算法

排序算法

①冒泡排序:O()

int n;cin>>n;

for(int i=1;i<=n;i++)cin>>a[i];

for(int i=1;ia[j])swap(a[j-1],a[j]);

for(int i=1;i<=n;i++)cout<

②插入排序:O()

int  n;cin>>n;

for(int i=1;i<=n;i++)cin>>a[i];

int t;
for(int i=1;i<=n;i++){
    t=a[i];

    while(i&&a[i-1]>t){
        a[i]=a[i-1];i--;
    }
    a[i]=t;
}

for(int i=1;i<=n;i++)cout<

③选择排序:O()

int n;cin>>n;

for(int i=1;i<=n;i++)cin>>a[i];

for(int i=1;ia[i])minn=j;

    swap(a[i],a[minn]);
}

for(int i=1;i<=n;i++)cout<

④桶排序

int n;cin>>n;

memset(num,0,sizeof(num));
for(int i=1;i<=n;i++){
    cin>>a[i];num[a[i]]++;
}

for(int i=1;i<=1000000;i++)
    if(num[i]!=0)
        for(int j=1;j<=num[i];j++)
            cout<

⑤sort排序

//从小到大
bool cmp(int a,int b){return ab;}
sort(a+1,a+n+1,cmp);

你可能感兴趣的:(noip普及组3:排序算法)