학사 나부랭이

백준 11651 - 퀵 정렬 본문

塵箱/코드 삽질

백준 11651 - 퀵 정렬

태양왕 해킹 (14세) 2021. 4. 21. 00:22
#include <iostream>
using namespace std;
void xchg(int** arr, int i, int j) {
	int tmpx = arr[0][i], tmpy = arr[1][i];
	arr[0][i] = arr[0][j];
	arr[1][i] = arr[1][j];
	arr[0][j] = tmpx;
	arr[1][j] = tmpy;
}
void sort(int** arr, int high, int low) {
	int j = low;
	if (high <= low) return;
	for (int i = low + 1; i <= high; i++) {
		if (arr[1][i] < arr[1][low]) {
			j++;
			xchg(arr, i, j);
		}
		else if (arr[1][i] == arr[1][low]) {
			if (arr[0][i] < arr[0][low]) {
				j++;
				xchg(arr, i, j);
			}
		}
	}
	xchg(arr, low, j);
	sort(arr, j - 1, low);
	sort(arr, high, j + 1);
	return;
}
int main() {
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	int n, ** xy;
	xy = new int* [2];
	cin >> n;
	for (int i = 0; i < 2; i++) xy[i] = new int[n];
	for (int i = 0; i < n; i++) cin >> xy[0][i] >> xy[1][i];
	sort(xy, n - 1, 0);
	for (int i = 0; i < n; i++) cout << xy[0][i] << " " << xy[1][i] << "\n";
	delete[] xy;
}

'塵箱 > 코드 삽질' 카테고리의 다른 글

백준 2869 - 조건 적확하게 설정하기  (0) 2021.04.20
백준 15829 - 모듈러 연산  (0) 2021.04.20
백준 10866 - 덱  (0) 2021.04.19
백준 1494 - 다이나믹 프로그래밍, 이진 탐색  (0) 2021.04.17
Floyd algorithm  (0) 2021.04.16
Comments