后三个点超时,大佬求解
查看原帖
后三个点超时,大佬求解
606717
cywscs楼主2021/12/1 12:21

#include<iostream>
using namespace std;
int arr[100010];

void quicksort(int begin, int end) {
	if (begin >= end)
		return;
	int left = begin, right = end;
	int key = begin;
	while (begin < end)
	{
		while (arr[end] >= arr[key] && begin < end)
			--end;
		while (arr[begin] <= arr[key] && begin < end)
			++begin;
		swap(arr[begin], arr[end]);
	}
	swap(arr[key], arr[end]);
	key = end;
	quicksort(left, key - 1);
	quicksort(key + 1, right);

}

int main() {
	int n;
	cin >> n;
	for (int i = 0; i < n; i++)
		cin >> arr[i];
	quicksort(0, n - 1);
	for (int i = 0; i < n; i++)
		cout << arr[i] << " ";
}
2021/12/1 12:21
加载中...