リニアサーチとバイナリサーチ程ではなかったけど、やっぱり差が出るんですね。やってる事は同じなのになぁ。今回は、ちょっとがんばって実験回数を増やしました。数が増えてくると、パソコンが動いているのか止まっているのかよく分かりませんね。番兵も試してみたのですが、結果がうまくでなかったので、残念でした(;; |
そうですね。途中で、ちゃんとやってることを表示するプログラムのほうが親切ですね。プログレスバーとかね! |
感想: 「番兵」という考えはためになった。今まで何気なくプログラムを を書いていたが、反省させられた。 |
「番兵」という考え方は、プログラムを書いていると、しょっちゅう出てきます。覚えておきましょう。 |
最近はかなり難しい。選択ソートと挿入ソートの経過時間の差が、nが増えるに従って縮まる理由がはっきりわからなかった |
ソートのアルゴリズムは条件によって、結果が変わってきます。 |
●感想:これほど沢山のソートアルゴリズムを書くことは、現実のプログラミングではそう無いと思うので、なかなかよい修行になっていると思います。修行するぞ修行するぞ修行するぞ。 ただ、本心をいうと、UML、デザインパターンなど「オブジェクト指向」っぽいところに早くいきたいです。オブジェクトプログラミングというのはオブジェクト指向をやってくれると思っていたのですが、いまのところ、Javaの復習とアルゴリズムの説明ばっかりでちょっと期待はずれです。 アルゴリズムの実装が正しいかどうか心配だったので、すべてのソートアルゴリズムの結果が同じになっているかチェックする関数を作りました。 |
そうですね。これからは、またちょっとはなれて、データ構造を2回やります。その後は、継承、UML、イベントドリブンと、オブジェクト指向で行きたいと思います。だけど、むずかしいぞ! |
感想:先にRandomItemInfoMakerの方を実行するというのを忘れていて、何回か失敗した。 いろいろ複雑だなと思った。 |
説明不足でした。申し訳ありません。 |
---<感想>------------------------------------------------ 正直なところ課題でどこまでのことが求められているのかよくわからない部分があるように思う。毎回の授業の内容はすごく工夫されていて、あまり授業を受ける側に負担がかかり過ぎないようにという配慮が見て取れ、授業を受ける側としてはありがたい限りなのだが、誘導がありすぎるせいかいざ課題をやろうとする時にどこまでやっていいのかやった方がよいのか、思い悩む。もう少し、時間があれば自分の納得するまでやればよいのだろうが月曜授業で水曜提出となると、なかなかそこまでするのが難しく特に他の課題で忙しい時などは、どうしても妥協をせざるをえなくなる。そのあたりの基準をもう少しだけ明確にしていただけると宿題をやるものとしてうれしく思う。 |
そこは、個人個人の判断に任されています。指定された課題をやりさえすれば、力はつくようになっていますが、もっと進みたいひとのために、発展問題を用意します。 |
-builderの調子が悪いのでエディターで書いたらコンパイル後エラーが全ては読めなくて、書いた後にj-builderにコピーアンドペーストしようとしても「もうあります」とエラーが出て、 Mainだけはうまくj-builderに組み込めたので実行したらあるはずのファイルとの関連付けがうまくいってないようなエラーで結局課題が実行できませんでした。申し訳ないです。次回は最初から最後までj-builder使ってみます。 |
そうですね。どちらかに統一したほうが、ミス無くできます。 |
[感想] 番兵君はちょっと考えたけれど、かなり手一杯な感じなのでつけるのをあきらめました。 |
そうですか。時間のあるときに復習してみましょう。 |
秋学期にアルゴリズムとデータ構造という授業でソートを扱ったためそこで作ったプログラムを流用したので、若干速度に差があるようです。また、挿入ソートより選択ソートのほうが速い結果が出たのには驚きました。 |
条件によっては、そのようなこともあると思います。 |
「感想」今回は実行結果のところで書いたように、プログラム上でできずに原始的な方法を使うということになってしまった。実際のところはどうすればよいのか教えてください。あと前から思っていたのですがソースをメールに貼り付けるとどうしても文字化けするのですがこれはこれで良いのでしょうか?とりあえず今回は添付で送りますが... |
要素を消して、もう一度やるというアプローチは、正しいです。ですが、原始的に消すという方法が、実際にどうやってるのかわかりません、、、、。教えてください。質問に答えます。 |
<感想>要素数を10万にして実行したら日が暮れました。C小僧だった私もここにきてJAVAに慣れ親しんできました。これからも頑張ります! |
私も昔実験したことがありました。寝て、起きたら、そこでちょうど終わりました。 |
◎感想バブルソートというネーミングになかなか関心しました。たしかにバブル(泡)のようですよね。 |
教科書についているアプレットを実行してみると、本当に泡のようです。 |
おつかれさまです。 |
こちらこそ。 |
よく解らない結果になってしまいました。 何がいけなかったのかもよく解りません。 さらに、今回はレジュメを写す作業がしんどかったです。 タイピングもやらないといけないみたいです。 大変です。来週は今週より簡単にして下さい。 お願いします。 |
これからは、スケルトンをダウンロードできるようにします。 タイピングもしっかりやってください。(from先生) |
ガード付き挿入ソートのメソッドを考える時間がありませんでした。(残念・・・)たぶん結果として予想できるのは、要素数が増えれば増えるほど、ノーマルの挿入ソートと比べて、"i>0"の条件がなくなる分早くなり、アルゴリズムの理論上どうりの、挿入ソートの方がバブルソートや選択ソートより早いという実験結果が出たと思います。(i>0があるので、結局実験では要素数が大きくなればなるほど、選択ソートより遅くなっています。) |
そういう実験結果になります。時間があったら実験してみよう! |
ソートの考え方がちょっとややこしかったです。なんとなくわかっただけでは、if文の条件の所が<0なのか<1なのか、 |
きちんと理解して、来週から、またがんばりましょう。 |
ソートはめんどいです。 それにしても毎週水曜日は雨ですね。 |
あまり、実際に、自分でソートを書くことは少ないですけど、中身を知っておくことは非常に重要です。月曜はいつも晴れですね。 |
ファイルの扱い方がわかりづらった。その他のソートに関しては理解できたと思う。 |
ファイルの扱い方は授業の本線ではなく、オプションです。ほとんどおまじないなので、理解しなくてもかまいません。(Java特有の書き方ですしね) |
一応、番兵を用いた挿入ソートを書いてみたがどこか間違っていたらしく番兵を用いていない挿入ソートと同じぐらいの処理速度であった。なので、番兵を用いたプログラムが分かりませんでした。 |
書き方によっては、処理速度が同じになってしまうようです。コツは番兵以外のアルゴリズムを変えないことです。 |
一度ファイルを初期化して次のソートに移るのは、ヒントが出るまで気づきませんでした。実験は面白かったので無駄に繰り返したりしました。 |
ソート済みで、挿入ソートをしても、実験になりませんからね。 |
感想: 挿入ソートが、理論通りの速さを見せなかったのが気になりました。 |
そうですか。挿入ソートはそんなに早くないはずです。実験結果をみると、正しい気がします。 |
感想: やはりバブルソートは時間が多くかかった。選択ソートは比較の回数はバブルソートと同じだが、位置の入れ替えが少ないため、バブルソートよりも速かった。挿入ソートは、比較、入れ替えともに一番効率がよいので一番時間がかからなかった。逆順になっていない限り挿入ソートが一番効率がいいようである。プログラムとしては、ソートのアルゴリズムはそんなに難しくなかった。 |
難しくないですか。それだと、、これからも楽勝かな、、、 |
感想: 20000でこれだけの時間がかかると実用にはまだ向かないと思う。10000でも長く感じる。ソートするのに時間がかかるとサーチの速さが活かせないのでどうにかしたい。番兵付き挿入ソートを作りたかったが他の課題などもあり,今回は作ることができなかった。 |
時間があったらやってみてください。 |
感想:このように実際に時間を計ってみると自分が書いたプログラムの性能を意識するようになりました。これからプログラムを書くときも、なるべく質の高いプログラムを書くようにしたいと思いました。 VendingMachineMain.java の中で、一度以上 setup(folder) をすると、2回目以降ではアイテムがソートされた状態で入ってしまい、その中身をフラッシュする方法が分かりませんでした。 |
folderの中身を一旦消すか、もう一度、folderを作るかしないとだめです。 |
感想:今回は全てのソートでそうだったのですが、要素数が1000以下の場合、かかった時間が0ミリ秒としか表示されないことがかなりありました。むしろ挿入ソートにおいては、2000までに要素数を引き上げた場合のみ、やっとかかった時間が表示されるようになっていたので、プログラミングのミスではないのかと非常に悩みました。結局、「時間が少なすぎるためにコンピューターが計算できなかったのではないか?」と考えているのですが、正直なこところ良くわかりません。また、最後のほうでテキストファイルにランダムに挿入した数値を書き出す方法をやりましたが、そのテキストファイルをどこに用意して置いたらよいのかがわからず苦労しました。次回はどのディレクトリーに置けばよいのか、等も教えていただけると助かります。 |
書き出すディレクトリーと読み込むディレクトリーが同じなので、大丈夫なはずですが、、 |
感想: 数が大きいので、実行結果の欄をみるのが めんどくさかったです。授業進度が速すぎて、その場では なかなか理解できませんでした. |
pptをもう一度見直して、がんばってください。授業進度については検討します。 |
感想:ソートにはいろいろあって面白いと思いました。 |
まだまだ、いろんなのがあるんですよ、、、、 |
感想:今回は特に難しかったです。。。 |
これから、まだまだ大変ですよ。がんばりましょう! |
結局できなかったのですが一応ソースだけでもおくらさせていただきます。 |
できない場合、何ができないのか、こう考えて、こうしたけどできなかったという旨を書いてください。「何ができてないのかわからない!」という人には、教えてあげても、結局できません。 |
今回の授業でswapのメソッドを定義しましたが、これをメソッドとしてつくっておくことで、次からのオブジェクトの入れ替えが楽になると思うので、オブジェクト指向のありがたさが少しわかったような気がします。 |
そうですね!その考え方は重要です! |
最近とてもプログラミングがとっつきにくいと感じます。難しいです。でも頑張らねばと感じます。 |
そんなに難しく考える必要ないですよ。だれでも最初はできません。 |
自分で考えて書くところも少し大変でしたが、それ以上にソースを写し取るのに骨を折りました。 一回HDが壊れてしまったのでJ?BUILDERを再インストールしたらデータ構造が分からなくなってしまいましたが、SAの人のおかげで何とかなりました。 |
なるべくスケルトンをダウンロードできるようにします。 |
質問ファイルの書き出し、読み込みの部分の OutputStreamWriter osw = new OutputStreamWriter(fos) 等の最後の( )の意味がわかりませんでした。 |
コンストラクタの引き数です。 |
実際この命令文を書いている最中はあまり土いういうことが起こっていくのかあまり予想がつかなかった。 |
デバッガを使って、中で何をやってるか探ってみてはいかが? |
暑くて、プログラムが長くて、脳味噌がとろけそうでした。授業時間の最後の方は自分が何をやっているのかわからなくなっていたような気がします。 |
そういう時は、今日はあきらめて、リフレッシュしてからがんばってみよう!プログラミングのコツです。 |
先生とTA/SAの間の意思疎通ができてない。先生があからさまにぶっつけ本番なので授業受けているほうとしてはやる気が消える。 |
ごめんなさい。打ち合わせをきちっといたします。 |
前回より簡単だったですが難しかったです。 やはり、結構プログラミングを間違えるので 直すのが大変です。間違いを書き直してくれる ソフトがほしいです。 |
そうですね。コンパイラはかなり頭がいいはずなんですがね。 |
発展問題をどうしても解きたくて粘ったのですが、プログラミングが苦手な私のこと、さんざん色々なことを試した挙句、結局できませんでした。すごく悔しいです。こういうのは慣れなのですか?私はプログラミングの考えが苦手で、基礎的なことを理解するにも時間がかかってしまいます。やはり発想が大事なのですか?あまりにできないと私は頭が硬い、鈍いなと悔しくなります。なんとかしたい。 こういうのをきちんと理解でき、応用できるようになりたいです。 |
発想ではありません。いかに論理的に考えられるかです。プログラミングが苦手だと思うのは、最初はしかたがありません。ですが、基礎的なことを時間をかけて理解していった結果、プログラムはできるようになります。修行ですね。がんばりましょう! |
疲れた. |
こちらも、そろそろ疲れてきました。 |
本当にはやいアルゴリズムを書くのは難しいとつくづく実感した。 |
そうですね。はやいアルゴリズムはまだ気にする必要はありませんが、明らかに遅いアルゴリズムを書くのは避けたいですね。 |