💻☕프로그래밍 언어/C언어
C언어 내림차순/오름차순 정렬하는 법 --> 간단 정리
들판속초록풀
2024. 10. 18. 19:41
옛날에 배웠던 건데 자꾸 까먹어서 기본적인 형태 여기에 박제해두는 용도
생각해보니까 1번쨰 코드에서
for(i=0; i< n-1; i++) --> 이렇게 해야지 더 정확하다. 근데 밑에 코드처럼 해도 딱히 상관은 없을 거 같긴 하다
맨 마지막 요소가 arr[n-1] 이고 마지막에서 2번째가 arr[n-2] 니까
// 내림차순 정렬
for(i = 0; i < n; i++)
{
for(j = i+1; j < n; j++)
{
if(arr[i] < arr[j])
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
// 오름차순 정렬
for(i = 0; i < n; i++)
{
for(j = i+1; j < n; j++)
{
if(arr[i] > arr[j]) // 여기 있는 i는 고정이다
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
이해하는 방법 :
i = 0 일 때:
j 가 1 ~ n-1 까지 연산하면
i 는 안쪽 for문이 돌아갈 때 고정이기 때문에
arr[0] 에 가장 크거나/작은 수가 들어오게 된다
같은 방법으로 i = 1 일때, arr[1] 에는 2번째로 가장 크거나/작은 수가 들어오게 된다
이렇게 계속 진행을 하면 배열이 정렬이 된다.