O(1) 時間で次の操作を実行できる整数の外部配列があります。
- get(int i) - 外部配列のインデックス 'i' の値を返します。
- reverse( int i, int j) - インデックス位置 i と j (i と j を含む) の間の配列の逆を返します。
逆の例: 配列 {1,2,3,4,5} を考えてみましょう。reverse(0,2) は {3,2,1,4,5} を返し、reverse(1,4) は {1,5,4,3,2} を返します。
外部配列をソートするコードを記述します。コードの時間と空間の複雑さに言及してください。
明らかに、クイックソートまたはマージソートを使用して nlogn でソートできます。しかし、シーンリオを考えると、もっとうまくやれるでしょうか?