問題
{30, 355, 24, 12, 98, 72, 5, 76, 60, 35, 54, 62, 2, 12, 35}の数値配列を昇順にソートするプログラムを作りなさい。
ソート方法は挿入ソートを使いなさい。
そもそも挿入ソートがわからない方はヒント1を参照してください。
なるべくヒント2以降見ないように、自力で解いてください。
ヒント
ヒント1:挿入ソートとは
ヒント2:ロジックの考え方
配列の長さ分だけ処理を繰り返すfor文の中で
n番目とn-1番目を比べて、n-1番目が大きい場合、n番目の値とn-1番目を交換するロジックを作ります
ヒント3:ロジックの考え方
n番目とn-1番目を比べて、n-1番目が大きい場合、n番目の値とn-1番目を交換するロジックはwhile文を使います。
このwhile文はn番目とn-1番目を比べて、n-1番目が大きい間処理を繰り返すようにします。
while文の中の処理で、n番目の値とn-1番目を交換するロジックを作ります。
答え
答え
1 2 3 4 5 6 7 8 9 10 11 |
arr = [30, 355, 24, 12, 98, 72, 5, 76, 60, 35, 54, 62, 2, 12, 35] num = 0 # 値を込むための新しい変数を宣言 for j in range(0, len(arr)): # 配列の中にある全ての数字を上順に整理するための反復門 for i in range(1, len(arr)): # 配列の中に一番大きい数字を最後に送るための反復門 if arr[i-1] > arr[i]: # 配列のi番目の値が、配列のi-1番目の値のより大きい場合の条件 num = arr[i] # i番目とi-1番目を変わる実行門 arr[i] = arr[i-1] arr[i-1] = num print(arr) |
コメント