#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
void dump(const vector<int> v) {
vector<int>::const_iterator iter;
for( iter = v.begin(); iter != v.end();iter++ )
cout << *iter << ' ';
cout << endl;
}
void merge(const vector<int>& arr1, const vector<int>& arr2, vector<int>& merged) {
int i,j;
i = j = 0;
while( i < arr1.size() && j < arr2.size() ) {
if( arr1.at(i) <= arr2.at(j) )
merged.push_back( arr1.at(i++) );
else
merged.push_back( arr2.at(j++) );
}
while( i < arr1.size() )
merged.push_back( arr1.at( i++ ) );
while( j < arr2.size() )
merged.push_back( arr2.at( j++ ) );
}
int main() {
vector<int> v1;
vector<int> v2;
vector<int> merged;
v1.push_back(3);
v1.push_back(5);
v1.push_back(7);
v2.push_back(1);
v2.push_back(2);
v2.push_back(3);
v2.push_back(7);
v2.push_back(9);
merge(v1,v2,merged);
dump(merged);
}
金曜日, 7月 26, 2013
マージ
2つのソート済み配列を一つの配列にマージし,ソートするコードは以下の通り.厳密にはマージソートと全く異なるので注意.
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿