手写快排太慢
  • 板块学术版
  • 楼主TARGETMINE
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/28 20:23
  • 上次更新2024/8/28 22:10:38
查看原帖
手写快排太慢
935263
TARGETMINE楼主2024/8/28 20:23

https://www.luogu.com.cn/problem/P1177 只能对两个,剩下三个全都TLE了

快排代码:

#include <iostream>
#include <algorithm> 

using namespace std;
int n;
int a[100005];

void quickSort(int a[], int left, int right)
{
	if (right < left)return ;
	
	int i=left, j=right;
	
	int x = a[i];
	
	while (i<j)
	{
		while ((a[j]>=x) && (j>i)) j--;
		a[i] = a[j];
		
		while ((a[i]<=x) && (j>i)) i++;
		a[j] = a[i];
		
	}
	
	a[i] = x;
	quickSort(a, left, i-1);
	quickSort(a, i+1, right);
	
}



int main(){
	cin >> n;
	for (int i=0;i<n;i++)
	{
		cin >> a[i];
	}
	quickSort(a, 0, n-1);
	
	for (int i=0;i<n;i++)
	{
		cout << a[i] << " ";
	}
	
	
	
	return 0;
}
2024/8/28 20:23
加载中...