DA:sort

提供:classwiki
2025年4月24日 (木) 03:41時点におけるKkamma (トーク | 投稿記録)による版 (→‎挿入ソート)
ナビゲーションに移動 検索に移動

バブルソート

import random

def bubblesort(numbers):
    flag = True
    while flag:
        flag = False
        for i in range(len(numbers) - 1):
            if numbers[i] > numbers[i+1]:

                ### ここを埋める ###

                flag = True
    return numbers

numbers = [random.randint(1,30) for i in range(30)]
print('整列前:', numbers)
numbers = bubblesort(numbers)
print('整列後:', numbers)

挿入ソート

import random

def insertionsort(numbers):
    for i in range(1, len(numbers)):
        x = numbers[i]
        for j in range(i, 0, -1):
            if numbers[j-1] > x:
                numbers[j] = ### ここを埋める ###
                numbers[j-1] = ### ここを埋める ###
            else:
                break
    return numbers

numbers = [random.randint(1,10) for i in range(10)]
print('整列前:', numbers)
numbers = insertionsort(numbers)
print('整列後:', numbers)

ヒープソート

ヒープ操作のための関数(push, pop等)は省略しています.

def heapsort():
    N = len(heap)
    numbers = [0 for i in range(N)]
    for i in range(N):
        ### ここを埋める ###
    return numbers

numbers = [random.randint(1,10) for i in range(10)]
print('整列前:', numbers)

# ヒープを構築
heap = []
for x in numbers:
    ### ここを埋める ###

numbers = heapsort()
print('整列後:', numbers)