「DA:sort」の版間の差分
ナビゲーションに移動
検索に移動
(→バブルソート) |
(→挿入ソート) |
||
| 36行目: | 36行目: | ||
print('整列前:', numbers) | print('整列前:', numbers) | ||
numbers = insertionsort(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) | print('整列後:', numbers) | ||
2025年4月24日 (木) 03:41時点における版
バブルソート
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)