선택 정렬 방법을 구현하는 단계: 먼저 최소 숫자를 찾아 앞쪽으로 바꾼 다음 나머지 숫자 중에서 가장 작은 숫자를 찾아 나머지 숫자 앞쪽으로 바꿉니다. 숫자가 정렬되어 있습니다.
선택 정렬 방법을 구현하는 단계: 최소 숫자를 찾아 앞부분으로 바꾼 다음, 나머지 숫자 중에서 가장 작은 숫자를 찾아 나머지 숫자 앞부분으로 바꿉니다. 숫자 정렬하기
[추천 과정: 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 언어에서 선택 정렬 알고리즘을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!