IF条件でネストされたwhileループを最適化する

Zain Khaishagi |

私が達成しようとしているのは、昇順でソートされた2つのリストを指定して、すべての要素のマージされたリストをソートされた順序で作成して返すことです(merge-sort)

私が書いたコードは次のとおりです。

def linear_merge(list1, list2):
    a = 0
    for it2 in list2:
        if a < len(list1):
            while it2 > list1[a]:
                a += 1
                if a == len(list1):
                    break

        list1.insert(a, it2)
        a += 1
    return(list1)

前のIFと組み合わせて、最初は次のwhile条件を使用していました。

while it2 > list1[a] and a < len(list1):

しかし、それは私に次のエラーを与え続けましたlist1 = ['aa', 'xx', 'zz']list2 = ['bb', 'cc']

ファイル "/ Users / zainkhaishagi 1 / Downloads / google-python-exercises / basic / list2.py"、35行目、linear_merge、it2> list1 [a]およびa <len(list1):IndexError:リストインデックスが範囲外です

デバッグ時に、while条件にfalseのANDが含まれていても、渡されるインデックスがlist1範囲外であるように見えます。のインデックスをチェックせずに、falseAND条件がwhile条件をfalseにすることを期待していましたlist1どうやら、そうではありません。

  1. 単一の入力がFalseであっても、ANDはFalseであると想定されているため、ここで何かが欠落していますか?
  2. 私が使用したのと同じアプローチを使用して、このコードをさらに最適化する方法はありますか?(私が自分に与えた制約は、新しいリストを作成せず、複数の変数を使用せず、リストでの反復回数を最小限にすることでした)
nullchimp

最初に持っていたものの順序を変更するだけです:

while it2 > list1[a] and a < len(list1)

に:

while a < len(list1) and it2 > list1[a]

最初の条件がそうTrueない場合、それ以上評価されません。追加なしでこの例を見てくださいif

def linear_merge(list1, list2):
    a = 0
    for it2 in list2:
        while a < len(list1) and it2 > list1[a]:
            a += 1
            if a == len(list1):
                break

        list1.insert(a, it2)
        a += 1
    return list1

お役に立てば幸いです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pythonでネストされたforループを最適化する方法

分類Dev

Swiftでネストされたforループを最適化する

分類Dev

Swiftでネストされたforループを最適化する

分類Dev

Rubyでネストされたループを最適化する

分類Dev

rのネストされたforループを最適化する

分類Dev

rの行列で計算するためにネストされたforループを最適化する

分類Dev

forループネストされた内部条件コードを最適化します

分類Dev

Python関数でネストされたwhileループを適用する方法

分類Dev

ネストされたforループとjavascriptのifステートメントを最適化する

分類Dev

ネストされたPythonforループを最適化しますか?

分類Dev

リストの付属物を含むネストされたforループを最適化する方法は?

分類Dev

最適化ループ/ネストされたループ

分類Dev

これらのネストされたループを最適化する方法は?

分類Dev

ネストされたforループを使用して関数を最適化する方法

分類Dev

ネストされたループでの発生数をカウントするためにC#コードを最適化する

分類Dev

ネストされたifステートメント内のネストされたforループを最適化する

分類Dev

ネストされたforループの最適化

分類Dev

ネストされたループの最適化の改善

分類Dev

条件の下でリストをネストされたリストにグループ化する-Python

分類Dev

GCCを使用したC / C ++のループ内のネストされたifステートメントを最適化する

分類Dev

Java 8でハッシュマップを作成するために使用されるこれらのネストされたforループを最適化する最良の方法は何ですか?

分類Dev

ネストされたforループの時間計算量を最適化するために、重複する計算を避けます

分類Dev

forループにネストされた条件付きトリプルをベクトル化する方法-MATLAB

分類Dev

ネストされたForループの代替または最適化

分類Dev

複数の条件を持つネストされたwhere句を最適化する最良の方法は何ですか?

分類Dev

ネストされたforループアルゴリズム、JavaScriptの最適化

分類Dev

大規模なデータセットのネストされた構造に配列ごとにグループを最適化する

分類Dev

ネストされた条件付きSQLServerクエリ2008R2を最適化する方法

分類Dev

最適化されたGoogleマップルートを編集する

Related 関連記事

  1. 1

    Pythonでネストされたforループを最適化する方法

  2. 2

    Swiftでネストされたforループを最適化する

  3. 3

    Swiftでネストされたforループを最適化する

  4. 4

    Rubyでネストされたループを最適化する

  5. 5

    rのネストされたforループを最適化する

  6. 6

    rの行列で計算するためにネストされたforループを最適化する

  7. 7

    forループネストされた内部条件コードを最適化します

  8. 8

    Python関数でネストされたwhileループを適用する方法

  9. 9

    ネストされたforループとjavascriptのifステートメントを最適化する

  10. 10

    ネストされたPythonforループを最適化しますか?

  11. 11

    リストの付属物を含むネストされたforループを最適化する方法は?

  12. 12

    最適化ループ/ネストされたループ

  13. 13

    これらのネストされたループを最適化する方法は?

  14. 14

    ネストされたforループを使用して関数を最適化する方法

  15. 15

    ネストされたループでの発生数をカウントするためにC#コードを最適化する

  16. 16

    ネストされたifステートメント内のネストされたforループを最適化する

  17. 17

    ネストされたforループの最適化

  18. 18

    ネストされたループの最適化の改善

  19. 19

    条件の下でリストをネストされたリストにグループ化する-Python

  20. 20

    GCCを使用したC / C ++のループ内のネストされたifステートメントを最適化する

  21. 21

    Java 8でハッシュマップを作成するために使用されるこれらのネストされたforループを最適化する最良の方法は何ですか?

  22. 22

    ネストされたforループの時間計算量を最適化するために、重複する計算を避けます

  23. 23

    forループにネストされた条件付きトリプルをベクトル化する方法-MATLAB

  24. 24

    ネストされたForループの代替または最適化

  25. 25

    複数の条件を持つネストされたwhere句を最適化する最良の方法は何ですか?

  26. 26

    ネストされたforループアルゴリズム、JavaScriptの最適化

  27. 27

    大規模なデータセットのネストされた構造に配列ごとにグループを最適化する

  28. 28

    ネストされた条件付きSQLServerクエリ2008R2を最適化する方法

  29. 29

    最適化されたGoogleマップルートを編集する

ホットタグ

アーカイブ