Pythonは二次元秩序配列検索を実現する方法である。


本論文の例は,Pythonが二次元秩序配列ルックアップを実現する方法を述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
タイトル:二次元配列の中で、各行は左から右へのインクリメント順に並べられています。各列は上から下へのインクリメント順に並べられています。このような二次元配列と整数を入力して、配列に整数が含まれているかどうかを判断する関数を完成してください。
この問題は比較的簡単ですが、なかなか思いつかないです。二人のクラスメートに聞いてみましたが、みんなはどう解決するのが早いか思いつきませんでした。第一反応は全部二分検索です。行ごとに二分割検索して、いくつかの列を削除することができます。これはみんなが考えることができる基本的な考え方です。
比較的良いもう一つの考えは、まずアレイの右上の数字を選択し、この数字が検索対象の数字に等しい場合、検索は終了します。この数字が検索対象の数字より大きい場合は、この数字のある列を除いて、検索対象の数字より小さい場合は、この数字のある行を削除します。このように、各ステップは1行または1列を取り除くことができます。検索の速度は比較的速いです。
pythonのコード:

# -*- coding:utf-8 -*-
'''
  :        ,                 ,                 。
       ,                ,            。
'''
def search(array, num):
  #          
  i = 0
  j = len(array[0]) - 1
  max_i = len(array) - 1
  while i <= max_i and j >= 0:
    if array[i][j] == num:
      return True
    elif array[i][j] > num:
      j = j - 1
    else:
      i = i + 1
  return False
if __name__ == '__main__':
  a = [[1, 2, 8, 9],
     [2, 4, 9, 12],
     [4, 7, 10, 13],
     [6, 8, 11, 15],
     ]
  print search(a, 14)
  print search(a, 7)
  print search(a, 0)

Python関連の内容についてもっと興味がある方は、本駅のテーマを見てください。「Pythonデータ構造とアルゴリズム教程」「Python Socketプログラミング技術のまとめ」「Python関数使用テクニックのまとめ」「Python文字列操作テクニックのまとめ」「Python入門と階段の経典教程」「Pythonファイルとディレクトリ操作の概要
ここで述べたように、皆様のPythonプログラムの設計に役に立ちます。