> 일반적인 문제 > C 언어에서 선택 정렬 알고리즘을 구현하는 방법

C 언어에서 선택 정렬 알고리즘을 구현하는 방법

清浅
풀어 주다: 2020-09-09 13:30:43
원래의
39669명이 탐색했습니다.

선택 정렬 방법을 구현하는 단계: 먼저 최소 숫자를 찾아 앞쪽으로 바꾼 다음 나머지 숫자 중에서 가장 작은 숫자를 찾아 나머지 숫자 앞쪽으로 바꿉니다. 숫자가 정렬되어 있습니다.

C 언어에서 선택 정렬 알고리즘을 구현하는 방법

선택 정렬 방법을 구현하는 단계: 최소 숫자를 찾아 앞부분으로 바꾼 다음, 나머지 숫자 중에서 가장 작은 숫자를 찾아 나머지 숫자 앞부분으로 바꿉니다. 숫자 정렬하기

C 언어에서 선택 정렬 알고리즘을 구현하는 방법

[추천 과정: C 언어 튜토리얼]

선택 정렬 방법은 C 언어에서 더 일반적인 방법이며 버블 방법과 알고리즘보다 정렬 효율이 높습니다. 복잡하지도 않습니다.

선택 정렬 방법의 아이디어는 다음과 같습니다.

1 최소 숫자를 찾아서 앞쪽으로 바꿉니다.

2. 남은 숫자 중에서 가장 작은 숫자를 찾아 나머지 숫자의 맨 앞으로 바꿉니다.

3. 모든 숫자가 배열될 때까지 2단계를 반복하세요.

분명히 N개의 숫자가 포함된 배열의 경우 이 프로세스에는 N-1번(0

최소 숫자를 찾아 앞쪽으로 바꾸는 방법은

먼저 남은 숫자 중 첫 번째 숫자(일련번호는 i)를 기준으로 변수 k를 이용해 일련번호를 기록한다. , 그리고 다음 숫자를 베이스와 차례로 비교합니다. 베이스보다 작은 경우 k를 사용하여 일련 번호를 기록합니다(참고: 모든 숫자를 베이스와 비교할 때 k는 저장합니다. 가장 작은 숫자의 일련 번호를 입력한 다음 앞쪽으로 스왑합니다(지금 스왑하면 됩니다). 위의 과정에서 데이터는 한 번만 교환됩니다. 즉, 여행당 한 번만 데이터가 교환됩니다.

예:

#include<stdio.h>
#include<stdlib.h>
#define N 8
void select_sort(int a[],int n);
//选择排序实现
void select_sort(int a[],int n)//n为数组a的元素个数
{
 //进行N-1轮选择
 for(int i=0; i<n-1; i++)
 {
  int min_index = i; 
  //找出第i小的数所在的位置
  for(int j=i+1; j<n; j++)
  {
   if(a[j] < a[min_index])
   {
    min_index = j;
   }
  }
  //将第i小的数,放在第i个位置;如果刚好,就不用交换
  if( i != min_index)
  {
   int temp = a[i];
   a[i] = a[min_index];
   a[min_index] = temp;
  }
 }
}
int main()
{
 int num[N] = {89, 38, 11, 78, 96, 44, 19, 25};
 select_sort(num, N);
 for(int i=0; i<N; i++)
  printf("%d ", num[i]);
 printf("\n");
 system("pause");
 return 0;
}
로그인 후 복사

렌더링:

C 언어에서 선택 정렬 알고리즘을 구현하는 방법

요약: 위 내용은 이 글의 전체 내용입니다. 모두에게 도움이 되기를 바랍니다

위 내용은 C 언어에서 선택 정렬 알고리즘을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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