#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 件のコメント:
コメントを投稿