프로그래밍/C

C언어 - 기본 정렬 알고리즘들(버블, 삽입, 선택)

꿈꾸는 사람_Anthony 2021. 9. 1. 22:49
반응형

자꾸만 까먹는다..

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void main() {
	int n, tmp, j;
	scanf("%d", &n);
	int li[100] = { 0, };
	if(n<100) for (int i = 0;i < n;i++) scanf("%d", &li[i]);
	//선택
	for (int i = 0;i < n - 1;i++) {
		for (int j = i + 1;j < n;j++) {
			if (li[j] < li[i]) {
				tmp = li[j];
				li[j] = li[i];
				li[i] = tmp;
			}
		}
	}
	//버블
	for (int i = 0;i < n - 1;i++) {
		for (int j = 0;j < n - i - 1;j++) {
			if (li[j] > li[j + 1]) {
				tmp = li[j];
				li[j] = li[j + 1];
				li[j + 1] = tmp;
			}
		}
	}
	//삽입
	for (int i = 0;i < n;i++) {
		tmp = li[i];
		for (j = i-1;j >= 0 && li[j] > tmp;j--) li[j + 1] = li[j];
		li[j+1] = tmp; //이때 j는 -1혹은 li[j]<tmp인 것의 인덱스를 가진다.
	}
	for (int i = 0;i < n;i++) printf("%d", li[i]);
}
반응형