挿入ソート

今書いているコードのバグが取れないorz
代わりに、挿入ソートのコードを乗せる。
といっても、再帰型の挿入ソートだけど…

void insertion(int i,vector<int> &h){
  if(i==0)
    return ;
  insertion(i-1,h);
  int j,temp = h[i];
  for(j=i;j>0;j--){
    if(temp<h[j-1])
      h[j]=h[j-1];
    else
      break;
  }
  h[j]=temp;
}

ソート済みのh[0からi-1]にi番目の要素を挿入する。h[0]の時、h[0]はソート済みなので再帰的に挿入していくことができる。