problemscpp
A collection of my answers to algorithm problems in c++.
函数
acwing::acwing785_408 命名空间参考

  1. 快速排序
更多...

函数

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

详细描述

  1. 快速排序

函数说明

◆ main()

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

在文件 acwing408.cpp1354 行定义.

1354 {
1355 int n;
1356 cin >> n;
1357 vector<int> vec(n);
1358 for(int i = 0; i < n; i++) {
1359 cin >> vec[i];
1360 }
1361 qs(vec, 0, n - 1);
1362 for(int i = 0; i < n; i++) {
1363 cout << vec[i] << ' ';
1364 }
1365 return 0;
1366 }
void qs(vector< int > &vec, int l, int r)
Definition: acwing408.cpp:1335
int vec[100010]
Definition: pat.cpp:5095

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

被这些函数引用 TEST().

◆ qs()

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

在文件 acwing408.cpp1335 行定义.

1335 {
1336 if(l >= r)
1337 return;
1338 int pivot = vec[(l + r) / 2];
1339 int lp = l - 1;
1340 int rp = r + 1;
1341 while(lp < rp) {
1342 while(vec[++lp] < pivot)
1343 ;
1344 while(vec[--rp] > pivot)
1345 ;
1346 if(lp < rp) {
1347 swap(vec[lp], vec[rp]);
1348 }
1349 }
1350 qs(vec, l, rp);
1351 qs(vec, rp + 1, r);
1352 }

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

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

◆ TEST() [1/2]

acwing::acwing785_408::TEST ( acwing785_408  ,
case1   
)

在文件 acwing408_test.cpp1663 行定义.

1663 {
1664 istringstream in("5\n"
1665 "3 1 2 4 5");
1666 auto out = ostringstream();
1667 main(in, out);
1668 const auto ans = out.str();
1669 ASSERT_EQ("1 2 3 4 5 ",
1670 ans);
1671 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().

◆ TEST() [2/2]

acwing::acwing785_408::TEST ( acwing785_408  ,
case2   
)

在文件 acwing408_test.cpp1673 行定义.

1673 {
1674 istringstream in("30\n"
1675 "128 294 133 295 175 8 232 248 241 164 11 60 238 133 291 116 6 67 98 67 196 260 181 160 83 160 90 153 233 216");
1676 auto out = ostringstream();
1677 main(in, out);
1678 const auto ans = out.str();
1679 ASSERT_EQ("6 8 11 60 67 67 83 90 98 116 128 133 133 153 160 160 164 175 181 196 216 232 233 238 241 248 260 291 294 295 ",
1680 ans);
1681 }

引用了 main().