牛骨文教育服务平台(让学习变的简单)
博文笔记

123 排序

创建时间:2018-04-11 投稿人: 浏览次数:150


给你1 2 3 的混乱顺序问你最少几次能按升序排好

#include <iostream>

#include<stdio.h>
using namespace std;
int main()
{
    int n,a[1100],i,ge1=0,ge2=0,ge3=0,ge4=0,ge5=0,ge6=0,ge7=0,ge8=0,ge9=0,t,ge=0;
    scanf("%d",&n);
    for(i=0;i<=n-1;i++)
    {
        scanf("%d",&a[i]);
        if(a[i]==1)
            ge1++;
        if(a[i]==2)
            ge2++;
        if(a[i]==3)
            ge3++;
    }
    for(i=0;i<=ge1-1;i++)
    {
        if(a[i]==2)
            ge4++;
        if(a[i]==3)
            ge5++;
    }
    for(i=ge1;i<=ge1+ge2-1;i++)
    {
        if(a[i]==1)
            ge6++;
        if(a[i]==3)
            ge7++;
    }
    for(i=ge1+ge2;i<=n-1;i++)
    {
        if(a[i]==1)
            ge8++;
        if(a[i]==2)
            ge9++;
    }
    if(ge4!=0&&ge6!=0)
    {
        t=ge4;
        if(ge4>ge6)
            t=ge6;
        ge+=t;
    }
    if(ge5!=0&&ge8!=0)
    {
        t=ge5;
        if(ge8<ge5)
            t=ge8;
        ge+=t;
    }
    if(ge7!=0&&ge9!=0)
    {
        t=ge7;
        if(ge7>ge9)
            t=ge9;
        ge+=t;
    }


    ge+=(ge4+ge5+ge6+ge7+ge8+ge9-ge*2)/3*2;
    printf("%d ",ge);
    return 0;
}











声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。