problemscpp
A collection of my answers to algorithm problems in c++.
载入中...
搜索中...
未找到
acwing::acwing785 命名空间参考

  1. 快速排序
更多...

函数

int main (istream &cin, ostream &cout)
 
void qs (vector< int > &vec, int l, int r)
 
 TEST (acwing785, case1)
 

详细描述

  1. 快速排序

函数说明

◆ main()

int acwing::acwing785::main ( istream & cin,
ostream & cout )

在文件 acwing.cpp6317 行定义.

6317 {
6318 int n;
6319 cin >> n;
6320 vector<int> vec(n);
6321 for(int i = 0; i < n; i++) {
6322 cin >> vec[i];
6323 }
6324 qs(vec, 0, n - 1);
6325 for(int i = 0; i < n; i++) {
6326 cout << vec[i] << ' ';
6327 }
6328 return 0;
6329 }
void qs(vector< int > &vec, int l, int r)

引用了 qs().

被这些函数引用 TEST().

◆ qs()

void acwing::acwing785::qs ( vector< int > & vec,
int l,
int r )

在文件 acwing.cpp6299 行定义.

6299 {
6300 if(l >= r) {
6301 return;
6302 }
6303 const int x = vec[l + r >> 1];
6304 int lp = l - 1;
6305 int rp = r + 1;
6306 while(lp < rp) {
6307 while(vec[++lp] < x) {}
6308 while(vec[--rp] > x) {}
6309 if(lp < rp) {
6310 swap(vec[lp], vec[rp]);
6311 }
6312 }
6313 qs(vec, l, rp);
6314 qs(vec, rp + 1, r);
6315 }

引用了 qs().

被这些函数引用 main() , 以及 qs().

◆ TEST()

acwing::acwing785::TEST ( acwing785 ,
case1  )

在文件 acwing_test.cpp2968 行定义.

2968 {
2969 istringstream in("5\n"
2970 "3 1 2 4 5");
2971 auto out = ostringstream();
2972 main(in, out);
2973 const auto ans = out.str();
2974 ASSERT_EQ("1 2 3 4 5 ", ans);
2975 }
int main(istream &cin, ostream &cout)

引用了 main().