C语言 345TLE 求助wwwwww
查看原帖
C语言 345TLE 求助wwwwww
411080
wupeihao楼主2020/12/29 16:41
#include <stdio.h>
int a[10000001],n;
void quicksort(int left, int right) {
	int i, j, t, temp;
	if(left > right)
		return;
    temp = a[left]; //temp中存的就是基准数
    i = left;
    j = right;
    while(i != j) { 
    	while(a[j] >= temp && i < j)
    		j--;
    	while(a[i] <= temp && i < j)
    		i++;       
    	if(i < j)//交换两个数在数组中的位置
    	{
    		t = a[i];
    		a[i] = a[j];
    		a[j] = t;
    	}
    }
    //最终将基准数归位
    a[left] = a[i];
    a[i] = temp;
    quicksort(left, i-1);
    quicksort(i+1, right);
}
int main() {
	int i;
    //读入数据
	scanf("%d", &n);
	for(i = 1; i <= n; i++)
		scanf("%d", &a[i]);
    quicksort(1, n); //快速排序调用
    //输出排序后的结果
    for(i = 1; i < n; i++)
    	printf("%d ", a[i]);
    printf("%d\n", a[n]);
    return 0;
}
2020/12/29 16:41
加载中...