[白俊]750号


🔎 ソートアルゴリズム


ソートアルゴリズムとは?
n個の要素が与えられた場合、番号順や辞書順などの要素を一定の順序で並べ替えるアルゴリズム.

時間複雑度O(n 2 n^2 n 2)ソート


10004 Bubbleソート



画像ソース
隣接する2つの要素を比較してソートするアルゴリズムで比較すると、大きな値が表示されます.
1つのホイールをソートすると、最大値は最後に格納されるため、次のホイールを実行すると最後の値が除外されます.
  • 比較回数:n(n-1)/2
  • ✔選択ソート



    画像ソース
    これは、与えられた配列で最適な値を見つけた後、一番前の値と置き換え、一番前の値を取り除き、残りの配列を同じ方法で置き換え、すべての値がソートされるまでアルゴリズムです.
  • 選択ソートは泡ソートよりも速い.
  • ✔挿入ソート



    画像ソース
    前から順番に並べ替えられた並べ替え部分と比較し、自分の位置を見つけて挿入することで並べ替えを行うアルゴリズム.

    質問する


    N個の数字が与えられた場合、昇順で並べ替えられたプログラムを作成します.
    問題リンクのバックアップ

    に答える


    言語:python組み込みソート関数sort()を用いて簡略化したが,泡ソートと選択ソートを用いて解いた.

    🔎 コード#コード#

    # 버블 정렬
    n = int(input())
    num = [int(input()) for i in range(n)]
    
    for x in range(n):
        for y in range(n-1):
            if num[y] > num[y+1]:
                num[y], num[y+1] = num[y+1], num[y]
    for z in num:
        print(z)
    # 선택 정렬
    n = int(input())
    num = [int(input()) for i in range(n)]
    
    for x in range(n-1):
        min_index = x 
        for y in range(x+1, n):
            if num[min_index] > num[y]:
                min_index = y
    
        num[x], num[min_index] = num[min_index], num[x]
    
    for z in num:
        print(z)