ツールバーの
23386 ワード
¥¥¥¥¥¥¥¥
間違ったところがあったら教えてください.🙏
値を特定の順序で配置するアルゴリズム.
通常、数字順(Numerical Order)と辞書順(Lexicographic Order)で並べ替えられます.
横の値と比較して、サイズは右、小は左に並べ替えられます.配列全体を表示するので、時間の複雑さは常に
他のアルゴリズムに比べて、非常に非効率なアルゴリズムです.
ほとんどの場合、高速ソートよりも遅いが、実行速度は一定である(しばしば
ただし、データは個別のストレージスペースに格納され続け、スペースが不足している場合はクイックソートを使用します.
分割後、並べ替えてマージする分割征服アルゴリズム.
これは,軸心(基準点)を決定することにより,軸心より小さい場合に左,大,右と同様にパーティション化するアルゴリズムである.
これは非常に高速で効率的なアルゴリズム(平均
マージソートのように分割した後、並べ替えてマージする分割征服アルゴリズム.
Pythonで使用されるソートアルゴリズム C実装アルゴリズム は、「実際のデータの大部分がソートされている」と仮定する マージ+挿入ソート、合計
▼▼▼▼▼私が書いたコード
行単位の読み取り
readlines
リスト内の要素として各ローを受信
read
すべてのローを一度に読み込む
▼▼▼▼▼私が書いたコード
pythonでは、sordedは新しいリストを作成してソートし、ユーザーは自分でソート基準を決定することができます.この問題のように、
Reference
▼▼▼▼▼私が書いたコード
▼▼▼▼▼私が書いたコード
上記の問題では、
Reference
▼▼▼▼▼私が書いたコード
▼▼▼▼▼私が書いたコード
解決策は、上記のコードのように、リスト内のインデックスを入力値と見なして何度も繰り返し、リスト内の対応するインデックスに書き込むことです.
▼▼▼▼▼私が書いたコード
まず
その後は
Reference
▼▼▼▼▼私が書いたコード
間違ったところがあったら教えてください.🙏
ツールバーの
ツールバーの
値を特定の順序で配置するアルゴリズム.
通常、数字順(Numerical Order)と辞書順(Lexicographic Order)で並べ替えられます.
泡の位置を合わせる
横の値と比較して、サイズは右、小は左に並べ替えられます.配列全体を表示するので、時間の複雑さは常に
O(n**2)
です.他のアルゴリズムに比べて、非常に非効率なアルゴリズムです.
連結ソケット
ほとんどの場合、高速ソートよりも遅いが、実行速度は一定である(しばしば
O(nlogn)
であり、安定したソートである).ただし、データは個別のストレージスペースに格納され続け、スペースが不足している場合はクイックソートを使用します.
分割後、並べ替えてマージする分割征服アルゴリズム.
クイックソート
これは,軸心(基準点)を決定することにより,軸心より小さい場合に左,大,右と同様にパーティション化するアルゴリズムである.
これは非常に高速で効率的なアルゴリズム(平均
O(nlogn)
)ですが、最悪の場合はO(n**2)
になります.ソートされた配列を入力すると、パーティション化は行われないため、バブルソートと区別されません.マージソートのように分割した後、並べ替えてマージする分割征服アルゴリズム.
チームスイート(Timsort)
ソート解除
質問2751
▼▼▼▼▼私が書いたコード
import sys
N = int(input())
s = list(map(int,sys.stdin.readlines()))
s.sort()
for i in s: print(i)
readline行単位の読み取り
readlines
リスト内の要素として各ローを受信
read
すべてのローを一度に読み込む
問題11650
▼▼▼▼▼私が書いたコード
import sys
N = int(input())
point_xy = []
for _ in range(N):
x, y = map(int, sys.stdin.readline().split())
point_xy.append([x, y])
sorted_xy = sorted(point_xy)
for i in sorted_xy:
print(i[0],i[1])
sortedpythonでは、sordedは新しいリストを作成してソートし、ユーザーは自分でソート基準を決定することができます.この問題のように、
[[a,b],[c,d],[e,f]]
で使用すると、最初の要素をソートしようとします.要素の値が同じであれば、次の要素をソートします.Reference
問題11651
▼▼▼▼▼私が書いたコード
import sys
N = int(input())
point_yx = []
for _ in range(N):
x, y = map(int, sys.stdin.readline().split())
point_yx.append([y, x])
sorted_yx = sorted(point_yx)
for i in sorted_yx:
print(i[1],i[0])
上記の問題では,xとyの位置を変えるだけでよい.問題11651
▼▼▼▼▼私が書いたコード
import sys
from operator import itemgetter
N = int(input())
member = []
for _ in range(N):
age, name = sys.stdin.readline().split()
member.append([int(age), name])
sorted_mem = sorted(member, key=itemgetter(0))
for i in sorted_mem:
print(i[0],i[1])
Pythonでは、ソート関数にはkey
というパラメータがあり、operator
モジュールを使用して、複数のソート時にどの値に基づいてソートされるかを決定できます.上記の問題では、
age
を基準として並べ替えを試み、条件は나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬
である.Pythonでのソートは元の順序を保証し,加入順序を保証した.Reference
質問10825
▼▼▼▼▼私が書いたコード
import sys
N = int(input())
result = []
for _ in range(N):
name, kor, eng, math = sys.stdin.readline().split()
result.append([name, kor, eng, math])
result.sort(key = lambda x: (-int(x[1]), int(x[2]), -int(x[3]), x[0]))
for i in result:
print(i[0])
sorted
で使用可能なパラメータは、sort
でも使用可能である.また、itemgetter
は複数の条件で使用可能であるが、これらの問題では条件毎の減少と増加が異なるため、lambda
式が用いられる.import sys
from operator import itemgetter
N = int(input())
result = []
for _ in range(N):
name, kor, eng, math = sys.stdin.readline().split()
result.append([name, 100-int(kor), int(eng), 100-int(math)])
result.sort(key = itemgetter(1,2,3,0))
for i in result:
print(i[0])
もちろん、上記のようにitemgetter
を用いてもよい.質問10989
▼▼▼▼▼私が書いたコード
import sys
N = int(input())
arr = [0]*10001
for _ in range(N):
arr[int(sys.stdin.readline())] +=1
for i in range(10001):
if arr[i] != 0:
for _ in range(arr[i]):
print(i)
メモリ過剰の問題を解決することが重要です.readlines
を受け取っても、2回のリストが表示され、メモリが超過している場合があります.解決策は、上記のコードのように、リスト内のインデックスを入力値と見なして何度も繰り返し、リスト内の対応するインデックスに書き込むことです.
問題11652
▼▼▼▼▼私が書いたコード
import sys
from collections import Counter
N = int(input())
card = list(map(int, sys.stdin.readlines()))
cnt = Counter(sorted(card))
print(cnt.most_common(1)[0][0])
Counter
とmost_common
を最大限利用して解答したいと思います.まず
card
を並べ替え,条件下で가장 많이 가지고 있는 정수가 여러 가지라면, 작은 것을 출력
を解決した.その後は
most_common
パラメータを簡単に使えばよい.most_common
を参照し、同じ値であれば優先的に入力される値.Reference
問題11004
▼▼▼▼▼私が書いたコード
N, K= map(int, input().split())
arr = list(map(int, input().split()))
arr.sort()
print(arr[K-1])
Reference
この問題について(ツールバーの), 我々は、より多くの情報をここで見つけました https://velog.io/@sawol/백준-정렬-풀이テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol