> 백엔드 개발 > C++ > 선택 정렬을 위한 C 프로그램

선택 정렬을 위한 C 프로그램

PHPz
풀어 주다: 2023-08-28 13:13:05
앞으로
804명이 탐색했습니다.

선택 정렬을 위한 C 프로그램

선택 정렬은 배열에서 가장 작은 숫자를 찾아 첫 번째 위치에 배치하는 방식으로 작동하는 공격적인 알고리즘입니다. 탐색할 다음 배열은 가장 작은 숫자가 있는 다음 인덱스에서 시작됩니다.

이 개념을 더 명확하게 설명하기 위해 예를 들어 보겠습니다.

{6, 3, 8, 12, 9} 배열이 있고 이 배열의 가장 작은 요소는 3입니다. 따라서 우리는 첫 번째 위치에 3을 배치하고 그 이후 배열은 {3, 6, 8, 12, 9} 처럼 보일 것입니다. 이제 우리는 가장 작은 숫자를 다시 찾을 것입니다. 그러나 이번에는 3이 그 자리에 있기 때문에 검색에서 고려하지 않을 것입니다. 다음으로 가장 작은 요소인 6을 찾고 두 번째 위치에 6이 포함된 배열을 만든 다음 배열이 정렬될 때까지 배열에서 다시 검색합니다.

선택 정렬 알고리즘 작동 방식 -

선택 정렬 알고리즘은 다음 단계를 따릅니다.

배열 {20, 12, 23, 55,21}

  • 배열의 첫 번째 요소를 최소값으로 설정합니다. .

    Min value = 20

  • 최소값을 다음 요소와 비교하여 최소값보다 작으면 해당 요소를 최소값으로 지정합니다. 배열이 끝날 때까지 이 작업을 수행합니다.

    는 12:20 > 12와 비교되고, 최소값 = 12

    는 23:12 은 55:12

    21: 12

  • 과 비교하면 최소값을 배열의 첫 번째 위치(인덱스 0)에 넣습니다.

    Array = {12, 20,23, 55, 21}

  • 다음 반복에서는 정렬되지 않은 첫 번째 요소부터 정렬을 시작합니다.

    Array = {12, 20,23, 55, 21}

    20부터 검색을 시작하여 다음으로 최소값을 갖는 요소를 배치합니다.

    반복 2:

    최소값 = 20

    23 대비: 20

    55 대비: 20

    21 대비: 20

    최소값은 변경되지 않고 유지됩니다.

    array = {12, 20,23, 55, 21}

    반복 3:

    최소값 = 23.

    55 대비: 23

    21 대비: 23 > 21, 최소값 = 21

    인덱스로 이동한 최소값 = 2

    Array = {12, 20, 21, 55, 23}

    반복 4:

    최소 = 55

    23과 비교: 23

    최소 인덱스 3으로 이동 배열 = { 12 , 20 , 21 , 23 , 55 }

Example

#include <stdio.h>
int main() {
   int arr[10]={6,12,0,18,11,99,55,45,34,2};
   int n=10;
   int i, j, position, swap;
   for (i = 0; i < (n - 1); i++) {
      position = i;
      for (j = i + 1; j < n; j++) {
         if (arr[position] > arr[j])
            position = j;
      }
      if (position != i) {
         swap = arr[i];
         arr[i] = arr[position];
         arr[position] = swap;
      }
   }
   for (i = 0; i < n; i++)
      printf("%d\t", arr[i]);
   return 0;
}
로그인 후 복사

Output

0 2 6 11 12 18 34 45 55 99
로그인 후 복사

위 내용은 선택 정렬을 위한 C 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿