[C언어 알고리즘] 2.4.3 선택 정렬 알고리즘 소스 코드
//선택 정렬(Selection Sort)
#include <stdio.h>
#define SWAP(a,b) {int t; t = a; a=b; b=t;}//a와 b를 교환
void SelectionSort(int *base, int n);
int main(void)
{
int arr[10] = { 9,4,3,10,5,8,7,6,2,1 };
SelectionSort(arr, 10);
return 0;
}
void ViewArr(int *arr, int n);
void SelectionSort(int *base, int n)
{
int i, j;
int maxi;
ViewArr(base, n);//현재 상태 출력
for (i = n; i>1; i--)//정렬할 범위를 축소해 나갑니다.
{
maxi = 0;
for (j = 1; j<i; j++)
{
if (base[maxi]<base[j])//더 큰 원소를 만나면
{
maxi = j;
}
}
SWAP(base[maxi], base[i - 1]);//교환
ViewArr(base, n);//상태 출력
}
}
void ViewArr(int *arr, int n)
{
int i = 0;
for (i = 0; i<n; i++)
{
printf("%2d ", arr[i]);
}
printf("\n");
}
'언어 자료구조 알고리즘 > 디딤돌 알고리즘 (C언어)' 카테고리의 다른 글
[C언어 알고리즘] 2.6 쉘 정렬(Shell Sort) 알고리즘 (0) | 2016.11.29 |
---|---|
[C언어 알고리즘] 2.5.3 삽입 정렬 알고리즘 소스 코드 (0) | 2016.11.29 |
[C언어 알고리즘] 2.5.2 삽입 정렬 알고리즘 구현 (0) | 2016.11.29 |
[C언어 알고리즘] 2.5.1 삽입 정렬 알고리즘 성능 분석 (0) | 2016.11.29 |
[C언어 알고리즘] 2.5 삽입 정렬(Insertion Sort) 알고리즘 (0) | 2016.11.29 |
[C언어 알고리즘] 2.4.2 선택 정렬 알고리즘 구현 (0) | 2016.11.29 |
[C언어 알고리즘] 2.4.1 선택 정렬 알고리즘 성능 분석 (0) | 2016.11.29 |
[C언어 알고리즘] 2.4 선택 정렬(Selection Sort) 알고리즘 (0) | 2016.11.29 |
[C언어 알고리즘] 2.3.3 버블 정렬 알고리즘 소스 코드 (0) | 2016.11.29 |
[C언어 알고리즘] 2.3.2 버블 정렬 알고리즘 구현 (0) | 2016.11.29 |