Merge Sort

  • 功能:將兩個排序好的陣列合併成一個。
1
2
3
4
5
6
7
8
9
10
11
12
13
vector<int> merge(vector<int>& v1, vector<int>& v2)
{ // v1, v2 為由小到大排序後的陣列
int n1 = v1.size(), n2 = v2.size();
vector<int> v(n1 + n2);
int i = 0, i1 = 0, i2 = 0;
while (i1 < n1 || i2 < n2)
{
if (i1 >= n1) v[i++] = v2[i2++];
else if (i2 >= n2) v[i++] = v1[i1++];
else v[i++] = v1[i1] < v2[i2] ? v1[i1++] : v2[i2++];
}
return v;
}

Split

  • 功能:Implement Python 的 split() 函式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vector<string> split(string& str, char& sign)
{
vector<string> v;
size_t idx = 0;
size_t pos;

while ((pos = str.find(sign, idx)) != string::npos)
{
v.push_back(str.substr(idx, pos - idx));
idx = pos + 1;
}
if (idx < str.size()) v.push_back(str.substr(idx));

return v;
}