>>454
>forを抜けた後の代入のところですこし...
すこし何なのかは分かりませんが、とりあえず for (j = i; ...) の部分を
while文にしてみました。

j = i;
while (j > 0 && array[j - 1] > tmp) {
  array[j] = array[j - 1];
  j--;
}
array[j] = tmp;