予想される線形時間のリストからn番目に小さい要素を選択するPythonプログラム
線形時間計算量でリストからn番目に小さい要素を選択する必要がある場合、2つの方法が必要です。最小の要素を見つける1つの方法と、リストを2つの部分に分割する別の方法。この区分は、ユーザーが指定した「i」の値によって異なります。この値に基づいて、リストが分割され、最小の要素が決定されます。
以下は同じのデモンストレーションです-
例
def select_smallest(my_list, beg, end, i): if end - beg <= 1: return my_list[beg] pivot_val = start_partition(my_list, beg, end) k = pivot_val - beg + 1 if i < k: return select_smallest(my_list, beg, pivot_val, i) elif i > k: return select_smallest(my_list, pivot_val + 1, end, i - k) return my_list[pivot_val] def start_partition(my_list, beg, end): pivot_val = my_list[beg] i = beg + 1 j = end - 1 while True: while (i <= j and my_list[i] <= pivot_val): i = i + 1 while (i <= j and my_list[j] >= pivot_val): j = j - 1 if i <= j: my_list[i], my_list[j] = my_list[j], my_list[i] else: my_list[beg], my_list[j] = my_list[j], my_list[beg] return j my_list = input('Enter the list of numbers.. ') my_list = my_list.split() my_list = [int(x) for x in my_list] i = int(input('Enter the value for i.. ')) ith_smallest = select_smallest(my_list, 0, len(my_list), i) print('The result is {}.'.format(ith_smallest))
出力
Enter the list of numbers.. 43 12 67 89 99 0 Enter the value for i.. 3 The result is 43.
説明
-
「select_smallest」という名前のメソッドが定義されています。このメソッドは、リスト、開始、終了を取得し、「i」値がパラメーターとして取得されます。
-
「i」の値に応じてリストを2つの部分に分割する、「start_partition」という名前の別のメソッドが定義されています。
-
このメソッドは「select_smallest」メソッドで呼び出されます。
-
「select_smallest」も同じ関数内で再度呼び出されます。これが再帰の仕組みです。
-
数字はユーザーからの入力として取得されます。
-
デフォルト値に基づいて分割されます。
-
繰り返されます。
-
「i」の値はユーザーから取得されます。
-
この「i」の値に基づいて、リストは2つの部分に分けられます。
-
「select_smallest」メソッドは、リストの1つで呼び出されます。
-
出力はコンソールに表示されます。
-
リスト内の最小数を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。リストで利用可能な最小の番号を表示する必要があります ここでは、リストを並べ替えて最小の要素を取得するか、組み込みのmin()関数を使用して最小の要素を取得できます。 次に、以下の実装の概念を観察しましょう- 例 list1 = [101, 120, 104, 145, 99] # sorting using built-in function list1.sort() print("Smallest element is:", list1[0]) 出力 Smal
-
Pythonプログラムでの線形探索
この記事では、線形検索とPython3.xでの実装について学習します。またはそれ以前。 アルゴリズム 指定されたarr[]の左端の要素から開始し、要素xをarr []の各要素と1つずつ比較します。 xがいずれかの要素と一致する場合は、インデックス値を返します。 xがarr[]のどの要素とも一致しない場合は、-1を返すか、要素が見つかりません。 次に、特定のアプローチの視覚的表現を見てみましょう- 例 def linearsearch(arr, x): for i in range(len(arr)): &nbs