選択法での並べ替え手順を確認しよう

学習の目的

  • 1. 選択法の手順と比較回数と交換回数を確認する

  • 2. 比較回数と交換回数の仕組み

1. 選択法の手順と比較回数と交換回数を確認する

次のリンクをクリックして、アルゴリズム学習ツールを開きましょう。

学習モードで選択法の動作を確認します。

学習モードが選ばれているか確認しましょう。

学習モードでは、配列に格納された8個のデータを昇順に並び替えます。

アルゴリズム学習ツールを使って選択法で並べ替えを行いましょう。

上記の8つのデータを選択法で並べ替えるたときの比較回数・交換回数について答えてください。
ツールの操作方法や選択法の手順を確認したい場合は、下記の「ツールを使った選択法を確認する」をクリックして手順の確認をしてください。

ツールを使った選択法を確認する

スタートボタンを押す

スタートボタンを押すと0番のデータを基準として1番のデータを比較します。

昇順に並び替える選択法では、基準の位置に小さい値を入れていきます。

「8 > 3」で、基準の位置の数値が大きいので、基準の位置の値と添字1の数値を交換します。

数値を比べて小さいものがあったら、基準の位置とすぐに交換するのですね。

そうです。

このまま、基準の位置の値と配列の最後の値まで処理を繰り返していきましょう。

基準の位置(0番目)と2番目の値を比較する

「3 < 6」で、基準の位置の数値が小さいので、交換せず次に進みます。

基準の位置(0番目)と3番目の値を比較する

「3 > 2」で、基準の位置の数値が大きい場合は交換します。

基準の位置の値と添字3の数値を交換します。

基準の位置(0番目)と4番目の値を比較する

「2 < 7」で、基準の位置の数値が小さいので、交換せず次に進みます。

基準の位置(0番目)と5番目の値を比較する

「2 < 4」で、基準の位置の数値が小さいので、交換せず次に進みます。

基準の位置(0番目)と6番目の値を比較する

「2 > 1」で、基準の位置の数値が大きい場合は交換します。

基準の位置の値と添字6の数値を交換します。

基準の位置(0番目)と7番目の値を比較する

「1 < 5」で、基準の位置の数値が小さいので、交換せず次に進みます。

0番目を基準としたときに、最後の7番目まで比較が終わると、基準の位置の数値が確定します。

課題1 基準の位置が0のとき、基準の位置の値が確定するまでの比較回数を答えてください。

課題2 基準の位置が0のとき、基準の位置の値が確定するまでの交換回数を答えてください。

課題3 並び替えが完了するまでの比較回数を答えてください。

課題4 並び替えが完了するまでの交換回数を答えてください。

2. 比較回数と交換回数の仕組み

実行モードで選択法を行います。実行モードでは配列の要素数が1~100まで指定できます。

今回は実行モードでランダムな値で確かめてみます。

学習モードではデータが8個の場合で選択法での並び替えを行いました。
今度は、実行モードで同じ個数で複数回選択法を実行したときの比較回数と交換回数を調べます。

今回はランダムな値で3回実行してみます。

なんで複数回も同じ個数でやるの?

比較回数と交換回数を調べるってことだから、同じデータ数でも比較回数とか交換回数が変わるってことだよね。

そうですね。データ数が同じで内容が異なる場合に、比較回数と交換回数がどのように変化するのかについて注意をして実行してみましょう。

ランダムな8個のデータを用いて選択法での並び替えを3回行います。

選択法は、データ数に比例して実行回数が増える処理と、データ数には比例しない処理があります。

その違いを調べるために、同じデータ数でデータの並びが異なるデータを用いて比較します。

配列の個数を8にして配列生成ボタン押してください。

できた配列のデータを記入してください。

例 「19,5,56,70,34,3,44,20」のように、作成された配列の値を順番に記入しましょう。

配列の内容(1回目)

準備ができたらスタートボタンを押して並べ変えましょう。

配列の内容と並べ替えが終わったときの比較回数及び交換回数を記入してください。

比較回数(1回目)

交換回数(1回目)

同じことをあと2回します。

配列の個数を8にして配列生成ボタン押してください。

できた配列のデータを記入してください。

配列の内容(2回目)

準備ができたらスタートボタンを押して並べ変えましょう。

配列の内容と並べ替えが終わったときの比較回数及び交換回数を記入してください。

比較回数(2回目)

交換回数(2回目)

あと1回行います。

配列の個数を8にして配列生成ボタン押してください。

できた配列のデータを記入してください。

配列の内容(3回目)

準備ができたらスタートボタンを押して並べ変えましょう。

配列の内容と並べ替えが終わったときの比較回数及び交換回数を記入してください。

比較回数(3回目)

交換回数(3回目)

学習モードも含め、8個のデータの並び替えを行いました。データ数と比較回数、交換回数の関係について気づいたことを答えてください。

最大 500 文字

※この再現版では提出は行いません(送信先は未接続です)

Well done!

次のステップに進みましょう!

次のステップに進む

← 前のステップにもどる