首页 新闻 会员 周边 捐助

快速排序 C++

0
悬赏园豆:15 [已解决问题] 解决于 2020-08-09 14:31

以下为我的代码

include<bits/stdc++.h>

using namespace std;

int number[100005];

void quicksort(int left, int right)
{
if(left >= right)
return;

int i,j,key;
i = left; 
j = right;
key = number[left];

while(i != j)
{
	while(number[j] >= key && i < j)
		j--;
	
	while(number[i] <= key && i < j)
		i++;
		
	if(i < j)
		swap(number[i], number[j]);

}

number[left] = number[i];	
number[i] = key;
quicksort(left, i-1);
quicksort(i+1, right);	

}

int main()
{
int n;

scanf("%d",&n);
for(int i = 1; i <= n; i++)
	scanf("%d",&number[i]);

quicksort(1, n);
for(int i = 1; i <= n; i++)
	printf("%d ",number[i]);
return 0;

}

以下为AC代码

pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")

include <bits/stdc++.h>

using namespace std;

void quick_sort(int nums[],int low,int high)
{
if(low>=high)
{
return;
}

int l=low;
int r=high;
int tmp=nums[l];
while(l<r)
{
    while(nums[r]>tmp&&l<r)
    {
        r--;
    }
    while(nums[l]<=tmp&&l<r)
    {
        l++;
    }
    if(l<r)
    {
        swap(nums[l],nums[r]);
    }
}
swap(nums[low],nums[r]);
quick_sort(nums,low,l-1);
quick_sort(nums,l+1,high);

}

int main()
{
int n,a[100005];
cin>>n;
for(int i=0;i<n;++i)
{
scanf("%d",a+i);
}
random_shuffle(a,a+n);//随机乱序
quick_sort(a,0,n-1);
for(int i=0;i<n;++i)
{
printf("%d ",a[i]);
}
return 0;
}

想知道为什么我会有 3 个 TLE,好苦恼,求教!谢谢!

goalltheway的主页 goalltheway | 初学一级 | 园豆:121
提问于:2020-08-08 19:43
< >
分享
最佳答案
0

你这格式看着好难看,复制粘贴看你的代码也是没有任何格式的,能否去改一下你的代码格式

https://q.cnblogs.com/q/127456/

如果你的编辑器不是这样子的,就改,设置里可以设置

收获园豆:15
Conan-jine | 小虾三级 |园豆:1272 | 2020-08-08 20:14

我编译器不是这样子的,一弄过来就这样了

goalltheway | 园豆:121 (初学一级) | 2020-08-08 20:22

@goalltheway: 可以看看这

Conan-jine | 园豆:1272 (小虾三级) | 2020-08-08 20:25

@Conan-jine: 感谢

goalltheway | 园豆:121 (初学一级) | 2020-08-08 20:25

@Conan-jine: 编译器换了一个,预览以后还那样,,我这是这样的,没找到插入代码

goalltheway | 园豆:121 (初学一级) | 2020-08-08 20:40

@goalltheway: 在这改吧,我用的tiny

Conan-jine | 园豆:1272 (小虾三级) | 2020-08-08 20:42

@Conan-jine:

我界面这样的,不好意思。。我问题太多了

goalltheway | 园豆:121 (初学一级) | 2020-08-08 20:47

@goalltheway: 点击左边的常用选项

Conan-jine | 园豆:1272 (小虾三级) | 2020-08-08 22:18

@Conan-jine: 欧克

goalltheway | 园豆:121 (初学一级) | 2020-08-09 14:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册