第16講 データの並び換えに挑戦!

第1話 データを大小の順に並び換える
4,7,6,3,5
というデータを大小の順に並び換えるにはどうしたらよいでしょうか。
方法は、2つ考えられます。
(実際にはもっとあるかも知れませんので、
皆さんもより高速にデータを並び換える方法を考えてみて下さい。)
昇順(小さい順)でも降順(大きい順)でも基本的な考え方は同じですから、
昇順に並び換えるという前提で考えましょう。
1つ目の方法は、最小値を排除していく方法です。
4,7,6,3,5
の中の最小値を探します。
3です。3と
,7,6,,5
先頭の4を交換し、
,7,6,,5
3をグループから排除します。
3,7,6,4,5
グループ7,6,4,5の最小値を探します。
4ですので、グループ先頭の7と交換し、
3,,6,,5
3,
,6,,5
4をグループから排除します。
3,4,6,7,5
さらに、グループ6,7,5の最小値を考えます。
5です。5とグループ先頭の6と交換し、
3,4,,7,
3,4,,7,
5をグループから排除します。
3,4,5,7,6
グループ7,6の最小値を考えます。
6をグループ先頭の7と交換します。
3,4,5,
これで、並び換えに成功しています。
このひとつめの方法を『最小値(最大値)排除繰り返し法』と名付けます。
2つ目の方法は、『隣項交換繰り返し法』と私が名付けている方法です。
隣項とは、隣り合っている項です。
そして、項とは各数字のことです。
ですから、『隣項交換繰り返し法』とは隣り合う数字を昇順または降順に、
なるように交換することを繰り返す方法です。
具体的には、第6話で説明します。

『最小値(最大値)排除繰り返し法』と『隣項交換繰り返し法』ではどちらが高速に、
並び換えを実現できるのか、もこの講のテーマになります。

では、最小値または最大値を見つけるにはどうしたらよいでしょうか。

(excel 2016 vba 入門講義から借用、
この後も何話か借用しますが、
もちろん著作権に触れることはありませんよ。
こちらの講義も私の講義ですから。)



第15講第6話へ 第2話へ

a


初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ