알고리즘(Algorithm)

수 정렬하기 (2750)

맛두부 2017. 3. 4. 22:45


1. 문제


N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.


첫째 줄에 수의 개수 N(1<=N<=1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절대값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.


2. 포인트

1) 정렬 알고리즘 적용
    입력 갯수가 1000개 이하이므로 정렬 복잡도가 높아도 처리시간이 오래 안걸린다.

    -> 버블정렬 적용for문 조건 주의 : tCase -1, (tCase-i)-1

2) 배열 동적할당


3. 소스코드


#include <stdio.h>


int main()

{

int tCase, temp;

int i, j;

int *arr;


scanf("%d", &tCase);

arr = (int*)malloc(sizeof(int)*tCase);


for (i = 0; i < tCase; i++)

{

scanf("%d", &temp);

arr[i] = temp;

}


// Bubble Sort 

for (i = 0; i < tCase-1; i++)

{

for (j = 0; j < (tCase - i)-1; j++)

{

if (arr[j] > arr[j + 1])

{

temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;

}

}

}


for (i = 0; i < tCase; i++)

printf("%d\n", arr[i]);


return 0;

}