정렬 코드1(Better)

cnt는 실행 횟수를 비교하기 위한 변수입니다.

#include <stdio.h>
#define N 10
int main() {
	int arr[10] = {1,10,9,2,3,5,8,7,6,4};
	int tmp, cnt=0;
	
	for(int i=1; i<N; i++) {
		for(int j=i; j>0; j--) {
			cnt++;
			if(arr[j-1]>arr[j]) {
				tmp = arr[j];
				arr[j] = arr[j-1];
				arr[j-1] = tmp;
			}
			else break;
		}
	}
	
	for(int i =0; i<N; i++) {
		printf("%d |%d\n", arr[i], cnt);
	}
}

정렬코드2

cnt는 실행 횟수를 비교하기 위한 변수입니다.

#include <stdio.h>
#define N 10
int main() {
	int arr[10] = {1,10,9,2,3,5,8,7,6,4};
	int tmp, cnt=0;
	
	for(int i=1; i<N; i++) {
		for(int j=0; j<i; j++) {
			cnt++;
			if(arr[j]<arr[i]) {
				tmp = arr[j];
				arr[j] = arr[i];
				arr[i] = tmp;
			}
		}
	}
	
	for(int i =0; i<N; i++) {
		printf("%d |%d", arr[i], cnt);
	}
}

관련해서 풀어볼만한 문제

1037 약수