[알고리즘 노트 5.6 소절 - 대정수 연산] E: 대정수 정렬(대수 비교 크기 + 거품 정렬)

제목 설명
최대 N개의 길이가 1000에 이를 수 있는 수를 정렬합니다.
입력
첫 번째 비헤이비어의 정수 N(1<=N<=100)을 입력합니다.다음 N 줄은 줄마다 하나의 수가 있고, 수의 길이 범위는 1<=len<=1000이다.모든 수는 정수이며 접두사 0이 포함되지 않을 것을 보증합니다.
출력
여러 그룹의 테스트 데이터가 있을 수 있으며, 각 그룹의 데이터에 대해 제시된 N개의 수를 작은 그룹에서 큰 그룹으로 정렬하고, 정렬된 결과를 출력하며, 각각의 수는 한 줄을 차지한다.
샘플 입력
4
123
1234
12345
2345

샘플 출력
123
1234
2345
12345

거품 정렬+대수 비교 크기
크기를 비교하는 사고방식:
4
  • 길이가 큰 사람이 크다

  • 길이가 작은 사람은 작다
    4
  • 동장 비교 동위 크기
    #include
    #include
    
    struct bign{
        int d[1001];
        int len;
        bign()
        {
            memset(d,0,sizeof(d));
            len = 0;
        }
    };
    bign change(char a[])//    
    {
        bign c;
        for(int i=0; ib.len) return 1;//a 
        else if(a.lenb.d[i]) return 1;
                else if(a.d[i]

  • 갱신
    #include
    #include
    using namespace std;
    char a[101][1001];
    int check(char x[], char y[])
    {
        int lenx = strlen(x);
        int leny = strlen(y);
        if(lenx > leny) return 1;
        else if(lenx < leny) return 0;
        else
        {
            for(int i=0; i y[i])
                     return 1;
                if(x[i] < y[i]//     50%  ,       
                     return 0;
            }
            return 0;
        }
    }
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF)
        {
            for(int i=0; i

     

    좋은 웹페이지 즐겨찾기