寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

paizaラーニング: Pythonによる「素朴なソートアルゴリズムメニュー」問題集

paizaラーニングのレベルアップ問題集「素朴なソートアルゴリズムメニュー」からの出典です。
paiza.jp
Pythonによる「素朴なソートアルゴリズムメニュー」問題集と、それらの提出コードの解答例です。

僕が作成、提出したコードは、以下のとおりです。

・挿入ソート

/*
Pythonによる「素朴なソートアルゴリズムメニュー」問題集
FINAL問題 挿入ソート
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
# coding: utf-8
n = int(input())
num = list(map(int, input().rstrip().split()))
x,j = int,int
for i in range(1,n):
    x = num[i]
    j = i
    while j > 0 and num[j-1] > x:
        num[j] = num[j-1]
        j -=1
    num[j] = x
    print(*num)

・選択ソート

/*
Pythonによる「素朴なソートアルゴリズムメニュー」問題集
FINAL問題 選択ソート
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
# coding: utf-8
n = int(input())
num = list(map(int, input().rstrip().split()))
for i in range(0,n-1):
    mini = i
    for j in range(i+1,n):
        if num[j] < num[mini]:
            mini = j
    num[mini], num[i] = num[i], num[mini]
    print(*num)

バブルソート

/*
Pythonによる「素朴なソートアルゴリズムメニュー」問題集
FINAL問題 バブルソート
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
# coding: utf-8
n = int(input())
num = list(map(int, input().rstrip().split()))
for i in range(0,n-1):
    for j in range(n-1,i,-1):
        if num[j-1] > num[j]:
            num[j], num[j-1] = num[j-1], num[j]
    print(*num)

paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。