配列をソートせずに再帰的に特定の要素のインデックスを取得する方法はありますか?マージソートを変更してソートせずに要素のインデックスを返す方法
-2
A
答えて
0
ブルートフォース検索と再帰検索の両方がこの場合、同じ時間複雑さを持ちます。あなたは再帰的なバージョンをしたい場合はしかし、まだ、その後の擬似コードはです:
は、配列の静的インデックスをsearch.Initする配列やキーで関数を呼び出します。インデックスが範囲外にある場合、戻り-1(見出されないことを意味する)
チェック
チェックアレイ内の現在の要素がキーである場合。 trueの場合は静的インデックスを返します。
他の場合は、インデックスをインクリメントして関数呼び出しを返します。
0
おそらく、ソートされたリストの特定の要素のランクを見つけることを指しています。
実際には、この操作では配列を明示的にソートする必要はなく、単純にいくつの要素が小数点以下であるかをカウントします(昇順ソートの場合)。
それぞれの要素をチェックする必要があるため、可能な限り複雑なのはO(n)です。
非再帰的アプローチを使用して単純にO(n)の複雑さを達成するのは簡単です。単純にすべての要素を反復処理し、小さな要素に遭遇するたびにカウンタを増やします。カウンタの最終値は、ソートされた配列内の対象要素の位置を示します(これは明示的にソートせずに取得されたことに注意してください)。 (Cスタイルのコードを使用して)以下に例示するこの動作を模倣する
単純な再帰ソリューション:
getRank(int value, int* array, int nElements) {
if (nElements == 0) return 0;
if (array[0] < value)
return 1 + getRank(value, array + 1, nElements - 1);
else
return getRank(value, array + 1, nElements - 1);
}
関連する問題
- 1. 内容を変更せずに要素のサイズを変更する方法。 CSS
- 2. 配列をソートしてインデックスと要素の配列を返します
- 3. グループ化を変更せずにテーブル要素を含める方法
- 4. マージソート - ソートのみ2^n個の要素数
- 5. anglejsを使用して配列内の要素のインデックスを返す方法
- 6. evalを使用せずに要素参照を変更する
- 7. 要素を変更した後にhtml要素を更新する方法
- 8. 推力:アクティブな配列要素のインデックスを返す方法
- 9. 他の要素を移動させずにサイズ変更アイコン
- 10. 提出時に要素を動的にソートして複数の変更を保存する方法
- 11. for-loopを使用せずに列インデックスのベクトルを参照して行列の要素を変更する方法はありますか?
- 12. 別の要素内の要素を変更する方法
- 13. 要素内の要素を変更する方法
- 14. jQueryUIソート可能な要素をスクロールせずにドラッグ
- 15. ウィンドウサイズを変更して要素を拡大する方法
- 16. window.locationを変更して要素をトリガする方法は?
- 17. フォームの名前要素を変更せずに、1つのオプションのみをHTMLフォームにリダイレクトする方法
- 18. TreeSetでソートされた要素を削除して更新する方法は?
- 19. マージソートによるオブジェクトプロパティのソート
- 20. Python - 元の値を変更せずにクラスから値を返す方法
- 21. これらのキャンバス要素をZ-インデックスでソートする方法は?
- 22. インデックスを削除せずにインデックス付きvarchar(100)をテキストに変更する方法はありますか?
- 23. マージソートの繰り返し - 必要説明
- 24. すべての要素を移動せずにインデックス0からポップアップ
- 25. ページをリロードせずに要素を追加する方法
- 26. Python Pandasインデックスでソートせずにjsonを読み込む方法は?
- 27. javascriptを使用して要素インデックスを取得する方法
- 28. 指定されたインデックスでList要素を変更する方法
- 29. 要素をWatirで指定せずに要素を見つける方法は?
- 30. 他の表要素を移動せずに枠線の幅を変更する
何をachiveしたいですか?特定の要素だけを見つけますか?多分要素iterativを検索するほうが良いかもしれません... – gartenkralle
あなたの質問の配列の要素をソートして見つけることの関係を理解するのは難しいです。配列をソートすると、要素は一般的に別の場所にあるため、何を求めているのかは不明です。再帰的に –
??? –