[알고리즘 노트 5.6 소절 - 대정수 연산] E: 대정수 정렬(대수 비교 크기 + 거품 정렬)
1865 단어 【 알고리즘 노트 】Codeup 묘지
최대 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