Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで行および列ごとに並べ替えられた行列からすべての要素を並べ替えられた順序で出力するには


行列のすべての要素をソートされた順序で必要とする場合があります。ただし、行列は行と列の形式であるため、結果を得るために通常の並べ替えアルゴリズムを適用しません。むしろ、以下のユーザー定義関数を使用して要素を並べ替えます。

def heapq(a, k, i):
   greater = i
   l = 2 * i + 1
   r = 2 * i + 2
   if l < k and a[i] < a[l]:
      greater = l
   if r < k and a[greater] < a[r]:
      greater = r
   if greater != i:
      a[i], a[greater] = a[greater], a[i]
      heapq(a, k, greater)

def Sort(val):
   n = len(val)
   for i in range(n, -1, -1):
      heapq(val, n, i)
   for i in range(n - 1, 0, -1):
      val[i], val[0] = val[0], val[i]
      heapq(val, i, 0)
x = [11, 3, 50, 75, 4, 32, 9, 2, 15]
Sort(x)
n = len(x)
print("Sorted values are")
for i in range(n):
   print("%d" % x[i])

上記のコードを実行すると、次の結果が得られます-

出力

Sorted values are
2
3
4
9
11
15
32
50
75

  1. Pythonで指定されたセルの行および-または列の要素を除くマトリックス内のすべての要素の合計を検索します

    2Dマトリックスとセルインデックスのセットがあるとします。セルインデックスは(i、j)として表されます。ここで、iは行、jは列です。ここで、指定されたセルインデックス(i、j)ごとに、i番目の行に存在する要素を除くすべてのマトリックス要素の合計を見つける必要があります。 /またはj番目の列。 したがって、入力が次のような場合 2 2 3 4 5 7 6 4 3 セルインデックス=[(0、0)、(1、1)、(0、1)]の場合、出力は[19、14、20]になります。 これを解決するには、次の手順に従います- n:=ind_arrのサ

  2. Pythonでリスト内の要素の相対的な順序を見つける

    要素が整数であるリストが与えられます。相対的な順序を見つける必要があります。つまり、昇順で並べ替えられている場合は、それらの位置のインデックスを見つける必要があります。 並べ替えとインデックス付き 最初にリスト全体を並べ替え、並べ替え後に各リストのインデックスを見つけます。 例 listA = [78, 14, 0, 11] # printing original list print("Given list is : \n",listA) # using sorted() and index() res = [sorted(listA).index(i) for i i