私はstlとベクトルを使用して挿入ソートを実装しようとしています。私はこれまでのところ、この解決策を考え出した:挿入ソート - 空のリストを扱う
void insertionSort(vector<int> &v, int splitIndex);
int main() {
//vector<int> x = {55,33,99,11,22,44};
//vector<int> x = {55};
//vector<int> x = {55,11};
vector<int> x;
insertionSort(x, 0);
printVector(x);
return 0; }
void insertionSort(vector<int> &v, int splitIndex) {
vector<int>::iterator right = v.begin() + splitIndex + 1;
if(right == v.end())
return;
vector<int>::iterator left = v.begin() + splitIndex;
while(*right < *left && right != v.begin()) {
iter_swap(right, left);
right--;
left--;
}
insertionSort(v, splitIndex+1); }
「右」ポインタがベクトルの範囲外を向いされますので、それは空のベクターの場合を除き、すべてのケースに取り組んでいます。
if(v.size() < 2) return;
しかし、私はそのTIS条件は、すべての再帰呼び出しのために実行されます好きではない:私はそれが最初に条件を追加することによって固定することができます知っています。
アドバイスをしてください。ありがとう。
ある+1
JustRufus
あなたの試行後[ここに実装を見てください](http://stackoverflow.com/questions/24650626/how-to-implement-classic-sorting-algorithms-in-modern-c) – PaulMcKenzie