第21講 並び換え

第1話 並び換え

第21講では、ランダムに発生させたデータを
92,28,30,95,37
大小の順に並び換えることを学びます。

データを並び換える方法は、たくさんあります。
ライブラリ(インクルードファイル)を利用するのが、
手っ取り早い方法ですが、
学習のためには、
基本は自分の力で考えることが必要です。
ライブラリを使う方法は、
後で紹介することにしまして、
まず、自分で並び換えをしてみましょう。

私に思いつく方法は2つです。
以下、小さい順に並び換えることを前提にし、
配列
x[0]=92 x[1]=28 x[2]=30 x[3]=95 x[4]=37

x[0]=28 x[1]=30 x[2]=37 x[3]=92 x[4]=95
と並び直す場合の例で説明します。


1つ目の方法
5つの最大値を探します。
今の例では、
x[0]=92
x[1]=28 x[2]=30 x[3]=95 x[4]=37
次ぎに
x[3]のデータとx[4]のデータを交換して、
x[0]=92 x[1]=28 x[2]=30
x[3]=37 x[4]=95
とします。次ぎに、最大値を検索する範囲をx[0]からx[3]に絞ります。
x[0]=92 x[1]=28 x[2]=30 x[3]=37 x[4]=95
そして、その中の最大値を探します。
x[0]=92 x[1]=28 x[2]=30 x[3]=37 x[4]=95
x[0]とx[3]のデータを交換します。
x[0]=37 x[1]=28 x[2]=30 x[3]=92 x[4]=95
さらに、最大値の探索範囲を1つ絞り、
x[0]=37 x[1]=28 x[2]=30 x[3]=92 x[4]=95
x[0]からx[2]までの最大値を探します。
x[0]=37 x[1]=28 x[2]=30 x[3]=92 x[4]=95
x[0]とx[2]のデータを交換します。
x[0]=30 x[1]=28 x[2]=37 x[3]=92 x[4]=95
最大値の探索範囲を1つ絞り
x[0]=30 x[1]=28 x[2]=37 x[3]=92 x[4]=95
最大値を探します。
x[0]=30 x[1]=28 x[2]=37 x[3]=92 x[4]=95
x[0]とx[1]のデータを交換します。
x[0]=28 x[1]=30 x[2]=37 x[3]=92 x[4]=95
以上より並び換えに成功です。


要するに1回1回毎にグループの個数を絞りながら、
グループの最大値をそのグループの1番右に
もって行くことを繰り返すことによって並び換えを実現しているのです。


それでは、皆さん
h
を実現するプログラムを考えましょう。
条件としては、データ作成を関数fで行い、
その結果を表示関数hで表示させ、
データ並び換え関数gによって並び換え、
再びデータ表示関数hによって出力させるということにします。
さらに、2次元for文で実現するという条件を付け加えさせて頂きます。

第20講第9話へ 第2話へ

a

eclipse c++ 入門講義第1部へ

eclipse c++ 入門講義第2部へ


魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
VC++ C言語 C++ 入門 初心者 基礎から応用まで
本サイトトップへ