Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어로 10개 요소 배열을 오름차순으로 정렬하는 프로그램

배열(array)은 서로 관련된 데이터 항목들을 하나의 이름 아래에 저장하는 자료 구조입니다.

예를 들어, int student[30];

여기서 student는 단 하나의 변수 이름으로 30개의 데이터 항목을 담을 수 있는 배열 이름입니다.

배열의 주요 연산

배열에서 수행할 수 있는 대표적인 연산은 다음과 같습니다.

  • 탐색(Searching) − 특정 요소가 배열에 존재하는지 확인합니다.

  • 정렬(Sorting) − 배열의 요소들을 오름차순 또는 내림차순으로 배치합니다.

  • 순회(Traversing) − 배열의 모든 요소를 순서대로 처리합니다.

  • 삽입(Inserting) − 배열에 새로운 요소를 추가합니다.

  • 삭제(Deleting) − 배열에서 특정 요소를 제거합니다.

이번 프로그램에서는 교환(swap) 기법을 사용하여 배열의 요소들을 오름차순으로 정렬합니다.

오름차순 정렬 로직

배열을 오름차순으로 정렬할 때 적용되는 핵심 로직은 다음과 같습니다.

for(i=0;i<10-1;i++){
    for(j=i+1;j<10;j++){
        if(element[i]>element[j]){
            temp=element[i]; //element[i]와 element[j]를 교환
            element[i]=element[j];
            element[j]=temp;
        }
    }
}

정렬 원리 이해하기

이 정렬 방식은 선택 정렬(selection sort)과 유사한 원리로 동작합니다. 바깥쪽 반복문이 기준 위치 i를 지정하면, 안쪽 반복문이 i 이후의 모든 요소 j와 값을 비교하여 더 작은 값이 발견될 때마다 두 요소의 자리를 맞바꿉니다. 이 과정을 끝까지 반복하면 작은 값부터 차례대로 앞쪽에 배치되어 최종적으로 오름차순 배열이 완성됩니다.

전체 프로그램 코드

다음은 10개의 요소를 가진 배열을 오름차순으로 정렬하는 C 프로그램입니다.

#include<stdio.h>
int main(){
    int element[10],i,j,temp;
    printf("enter 10 integer numbers:");
    for(i=0;i<10;i++){
        scanf("%d",&element[i]);
    }
    for(i=0;i<10-1;i++){
        for(j=i+1;j<10;j++){
            if(element[i]>element[j]){
                temp=element[i]; //element[i]와 element[j]를 교환
                element[i]=element[j];
                element[j]=temp;
            }
        }
    }
    printf("Elements are now in ascending order:");
    for(i=0;i<10;i++)
        printf("%d\n",element[i]);
    return 0;
}

실행 결과

위 프로그램의 실행 결과는 다음과 같습니다.

enter 10 integer numbers:
12
23
34
1
22
34
56
45
33
78
Elements are now in ascending order:
1
12
22
23
33
34
34
45
56
78