[백준] 2750번 _정렬

ynoolee·2021년 3월 30일
0

코테준비

목록 보기
16/146
  • 정렬 알고리즘을 또 까먹어서 가장 기본이 되는 Bubble sorting을 하고 싶어서 풀어본 문제
#include <iostream>

int n; 
int arr[1000];


void swap(int * p1, int *p2)
{
	int temp = *p1;
	*p1 = *p2;
	*p2 = temp; 
}


int compare(const void *p1, const void *p2)
{
	int v1 = *(int*)p1; 
	int v2 = *(int*)p2;
	
	return v1 - v2; 
}

// Ascending 
void bubble_sort()
{
	// 0~n-1, sor 0~n-2 
	
	int flag = 1;
	while (flag)
	{
		flag = 0;
		//step 
		for (int i = 0; i < n - 1; i++) { // if n is 5, the last index of arr is 4 . (3,4) 
			if (compare(arr + i, arr + i + 1) > 0) {
				swap(arr + i, arr + i + 1);
				flag = 1;
			}
		}
	}
}



int main()
{
	std::cin >> n; 
	for (int i = 0; i < n; i++)
	{
		std::cin >> arr[i];
		
	}
	bubble_sort();
	for (int i = 0; i < n; i++)
	{
		printf("%d ",arr[i]);
	}

}

0개의 댓글