Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어에서 정렬의 개념을 설명합니다.

<시간/>

문제

C 언어에서 정렬을 사용하면 검색이 더 쉬워지는 이유는 무엇입니까? C에서 정렬 효율성을 어떻게 판단할 수 있습니까?

해결책

정렬은 요소를 오름차순(또는 내림차순)으로 정렬하는 과정입니다.

  • 정렬이라는 용어는 인간이 빠르게 검색하는 것의 중요성을 깨달았을 때 생겨났습니다.

  • 인생에는 데이터베이스의 특정 기록, 목록의 목록 번호, 전화 번호부의 번호, 책의 특정 페이지 등과 같이 우리가 검색해야 하는 다양한 것들이 있습니다.

  • 데이터가 정렬되지 않고 정렬되지 않은 형태로 보관되면 특정 항목을 검색하기가 어려워집니다. 하지만 다행히도 정렬이라는 개념이 생겨서 모든 사람이 데이터를 순서대로 정렬하기가 더 쉬워졌습니다.

  • 정렬은 데이터를 순서대로 정렬하여 검색을 더 쉽게 만듭니다.

분류 효율성

  • 카드 덱을 순서대로 정렬하려면 먼저 모든 카드를 확인하고 계속 진행하면서 덱을 만듭니다.

  • 데크를 순서대로 배열하는 데 시간이 많이 걸리지만 동일한 방식으로 수행합니다. 하지만 컴퓨터는 이렇게 작동하지 않습니다.

  • 프로그래밍 시대 초기부터 과학자들은 데이터를 정렬하기 위해 서로 다른 알고리즘으로 정렬하는 문제를 해결하기 위해 노력해 왔습니다.

어떤 알고리즘이 다른 알고리즘보다 나은지 판단하는 기준은 다음과 같습니다. -

  • 주어진 데이터를 정렬하는 데 걸린 시간입니다.
  • 이렇게 하려면 메모리 공간이 필요합니다.

예시

다음은 데이터 정렬을 위한 C 프로그램입니다 -

#include<stdio.h>
int main(){
   int a[50], i,j,n,t,sm;
   printf("enter the No: of elements in the list:\n");
   scanf("%d", &n);
   printf("enter the elements:\n");
   for(i=0; i<n; i++){
      scanf ("%d", &a[i]);
   }
   for (i=0; i<n-1; i++){
      sm=i;
      for (j=i+1; j<n; j++){
         if (a[j] < a[sm]){
            sm=j;
         }
      }
      t=a[i];
      a[i]=a[sm];
      a[sm]=t;
   }
   printf ("after selection sorting the elements are:\n");
   for (i=0; i<n; i++)
      printf("%d\t", a[i]);
   return 0;
}

출력

위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -

출력

enter the No: of elements in the list:
4
enter the elements:
34
12
56
7
after selection sorting the elements are:
7 12 34 56