「DA:sort」の版間の差分

提供:classwiki
ナビゲーションに移動 検索に移動
24行目: 24行目:
         x = numbers[i]
         x = numbers[i]
         for j in range(i, 0, -1):
         for j in range(i, 0, -1):
             if numbers[j-1] > x:
                numbers[j] = ### ここを埋める ###
             ### ここを埋める ###
                numbers[j-1] = ### ここを埋める ###
            else:
                break
     return numbers
     return numbers
   
   

2025年4月24日 (木) 04:06時点における版

バブルソート

import random

def bubblesort(numbers):
    flag = True
    while flag:
        flag = False
        for i in range(len(numbers) - 1):

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

    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):

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

    return numbers

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

ヒープソート

ヒープ操作のための関数(push, pop等)は省略しています.また,ヒープソートはその場整列が可能であるが,プログラムを簡単にするためにheapとは別の配列を用いてソートしたものをreturnしている点に注意.

def heapsort():
    N = len(heap)
    numbers = [0 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)