配列がソート済みで要素の重複がなければ、二分探索を応用して、こんな感じで未使用の値を拾えます。 (プログラム修正のため再投稿)