题目描述
快排
样例
include[HTML_REMOVED]
using namespace std;
int N = 10e6 + 10 ;
void quick_sort(int a[], int l, int r)
{
if(l>=r)
{
return;
}
//当下方的quick_so(a, l ,j ) ,quick_sort(a ,j+1 ,r) ; 时; x = a[l+r >> 1];
//避免递归调用死循环 已输入 1,2为例
int i = l-1, j = r + 1 , x = a[l+r >> 1];
while(i<j)
{
while(a[++i] < x);
while(a[--j] > x);
if(i<j)
{
swap(a[i] ,a[j]) ;
}
}
quick_sort(a,l,j);
quick_sort(a,j+1,r) ;
}
int main()
{
int n ;
int a[N] ;
scanf(“%d”, &n );
for(int i = 0; i<n; ++i)
{
scanf(“%d”,&a[i]) ;
}
quick_sort(a, 0 , n-1);
for(int i = 0; i<n;++i)
{
printf("%d ", a[i]) ;
}
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla