알고리즘 study -2-
<정렬>
-> 특정 기준을 적용하여 나열하는 것
- 선택정렬
- 삽입정렬
- 버블정렬
- 합병정렬
- 퀵정렬
< 선택정렬 >
-> 최솟값을 앞으로 이동시킨다
배열에서 선택 정렬 시 처음 찾은 최솟값과 맨 앞의 값과 위치를 서로 바꾼다
그 다음 두 번째 위치부터 위와 같은 과정을 다시 반복
#include <stdio.h>
int main() {
int n; // 배열 크기
int data[100];
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &data[i]);
}
printf("\n");
for (int i = 0; i < n; i++) {
// i 번째 부터 맨 끝까지 범위 안에서 최솟값 찾기
// 찾은 최솟값과 i번째 값의 위치를 바꾼다
int index = i; // 최소값의 위치를 가리키는 index
// i 왼쪽은 정렬이 되어있는 상태
for (int j = i; j < n; j++) {
if (data[index] > data[j])
index = j;
}
// i 가 현재 루프에서 제일 앞 원소
int temp;
temp = data[i];
data[i] = data[index];
data[index] = temp;
for (int k = 0; k < n; k++) {
printf("%d ", data[k]);
}
printf("\n");
}
return 0;
}
위 사진과 같이 정렬이 되는 과정을 볼 수 있다
Author And Source
이 문제에 관하여(알고리즘 study -2-), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nimok97/알고리즘-study-2-저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)