💻☕프로그래밍 언어/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번째로 가장 크거나/작은 수가 들어오게 된다

 

이렇게 계속 진행을 하면 배열이 정렬이 된다.