컴퓨터+a/코딩테스트 연습
C언어 오름차순 정렬
hiiambk
2021. 2. 27. 18:31
C언어를 배울때 가장 기본으로, 자주 쓰이는 코드인데 오랜만에 보면 조금 헷갈릴 때가 있어서 정리해두기로.
아래 방법이 가장 단순한 방법
// A_len : 배열 길이, A : 배열 이름
int i, j, temp;
for(i=0; i<A_len; i++)
{
for(j=i+1; j<A_len+1; j++)
{
if(A[i] > A[j])
{
temp = A[i];
A[i] = A[j];
A[j] = temp;
}
}
}
첫 번째 항목(기준)과 두 번째~A_len번째 항목을 순서대로 비교하여 첫 번째 항목보다 다른 항목이 크면 값을 바꿔주는 방법.
이 방법은 단순하지만 값을 여러번 바꾸는 단점이 있다.
그걸 해결해 줄 방법이 아래 방법
// A_len : 배열 길이, A : 배열 이름
int i, j, min, temp;
for(i=0; i<A_len; i++)
{
min = i;
for(j=i+1; j<A_len+1; j++)
{
if(A[min] > A[j])
{
min = j;
}
}
if(min != i)
{
temp = A[i];
A[i] = A[min];
A[min] = temp;
}
}
이렇게 코딩하면, 순서를 매번 바꾸는 것이 아니라 각 요소의 값에 들어갈 위치를 기억해 뒀다가 한 번만 바꾸면 되므로 조금 더 효율적.
그런데 왜 코딩 라인이 안 맞을까.
C언어 코딩 연습을 하면서 깨닫는데 확실히 C언어보다는 JAVA로 많은 사람들이 공부하고 있다는 느낌이 든다.
검색해도 주로 JAVA 코드가 나오는 편.
JAVA 공부의 필요성을 더 느낀다.
728x90