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)
Definition: acwing.cpp:6299
int vec[100010]
Definition: pat.cpp:5095

引用了 qs() , 以及 pat::a::a7_2::vec.

被这些函数引用 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() , 以及 pat::a::a7_2::vec.

被这些函数引用 main(), pat::a::a1014::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(int argc, char **argv)
Definition: main.cpp:5

引用了 main().