質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

5回答

3317閲覧

アルゴリズムの勉強の仕方

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

3グッド

2クリップ

投稿2016/07/16 03:38

編集2016/07/16 03:44

アルゴリズムの勉強の仕方を教えて頂けたらと思っています。

自分でアルゴリズムの勉強を始めたのですが、いきなり挫折しました。

Aizu Online Judgeというサイトで、基本的なアルゴリズムとデータ構造を学び始めたのですが、一番初めの「挿入ソート」で、すでにつまづいています。

他の方が書いたプログラミングの回答が見られるので、見たのですが、何をやっているのか、よくわかりませんでした。

どうやって勉強したら、良いのでしょうか?

できれば、アルゴリズムの勉強が嫌にならず、アルゴリズムが理解でき、自分がそのアルゴリズムを使おうと思った時に、その発想が思い浮かぶようになるには、どう勉強したら良いでしょうか?

挫折者でも何とかなるような勉強の仕方を教えてくださると嬉しいです。

よろしくお願い致します。

stereo_code, DrqYuto, Mr_Roboto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ベストアンサー

ごめんなさい。挿入ソートがどこに書いてあるかわかりませんでしたが取り敢えず回答します。

ソースコードを読むのになれた人は、ソースコードで考えるということができますが、初心者には難しいはずです。実際にやりたいことをしっかり慣れてからソースコードにあたりましょう。

まず、トランプでもなんでも良いので、手順を覚えるまで自分でソートして手順を体で覚えて下さい。

ソートアルゴリズムに関してはこのyoutubeが有名です。面白いでしょう。手順が分からなくなったらシリーズで見ると良いです。(何をしているかわからないというなら、説明を追記します。)

その上でソースコードを眺めると意味がわかると思います。たまに素直でない回答を書く人がいるので気にしないようにして下さい。

投稿2016/07/16 04:09

iwamoto_takaaki

総合スコア2883

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/07/16 04:18

回答ありがとうございます。 えっと、Aizu Online Judgeの「コース」の「Lesson」というところの「Algorithms and Data Structures I」の「Getting Started」の一番初めに「Insertion Sort」があります。 後から、YouTube見てみたいと思います。 手順を追えない段階にいるので、YouTubeでの解説は有難いです。 ありがとうございます。
退会済みユーザー

退会済みユーザー

2016/07/16 04:36

YouTube見ました。 挿入ソートは、こういった挙動をしているのですね。イメージが付きました。 あとは、書いてあるプログラムが、このイメージに合わせて、わかればと思います。 わからなかったら、また質問させて頂きます。 ありがとうございました。
iwamoto_takaaki

2016/07/16 04:55

この問題ですね。 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_1_A 回答例の一覧には、cやc++が多いので、Cを書いたことがなければつらいかもしれません。他の方が紹介してくれた様なRubyのサイトから見ることがおすすめです。 ただ、アルゴリズムに関してはほとんどの人がCを使います。 Cを避けて学ぶのは限界があるので、Rubyである程度書けるようになったら、読めるようになるまで学ぶことをおすすめします。
退会済みユーザー

退会済みユーザー

2016/07/16 05:19

Cは少し勉強したのですが、ポインターとか、<<こんな感じの記号が出てきて、よくわからず、難しい印象を持ったので、それ以来、勉強していません。 ですが、Rubyである程度書けるようになったら、再挑戦してみたいと思います。 ありがとうございました。
guest

0

何もないところからアイディアを創造するのはクヌースでもない限り無理なので、別に他人のコードを見て考えるのは悪いことではないと思います。自分もよくやります。
(ただし、慣れてきたら他人のコードを見ないで解答する方が面白くなってくるはずです)

さて、他人のコードを理解する方法としては、とりあえず他人のコードをコピペしてきて、実際に動かしてみるのが一番いいと思います。
途中でデバッガを使ったり、JavaならSystem.out.printf・Rubyならpを気になるところに追加して、データがどのように変化してみると分かりやすくなります。
(このときどこにprintfを追加すればいいか、というのは難しい話で経験が必要になるところです)

また、アルゴリズムそのものを理解するには、そのアルゴリズムの名前で色々と検索してみて、視覚的に説明しているようなサイトを探すといいかもしれません。
(例えば挿入ソートならこんな動画があります https://www.youtube.com/watch?v=z0YcQIqyV5Q

ただし、アルゴリズムの学習はやっていることが何かを開発することに比べて地味ですし、本当に学問のようなものなので、直感的に理解することは簡単なことではありません。
地道に理解しようとするしかないです。

さきほどの質問に引き続きですが、アルゴリズムの学習がんばってください。

投稿2016/07/16 04:04

MakeNowJust

総合スコア545

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/07/16 04:20

回答ありがとうございます。 プログラムの途中に、pを入れてやってみたいと思います。 視覚的にわかれば、少しわかるようになるかもしれません。 YouTube見たいと思います。 ありがとうございます。
退会済みユーザー

退会済みユーザー

2016/07/16 04:41

YouTube見ました。 プログラムの動きがわかりました。ちょっと難しかったですが、イメージがわきました。 ありがとうございました。
guest

0

いきなり人のプログラムを見てもわからないことはよくあることです。
どうしたら結果が出せるのか自分で考えましょう。
色々考えた上で他人のプログラムを見たらすっと理解できるはずです。

自分で考えることのできない人は何をやってもダメ。
逆にできる人は何でもできます。

投稿2016/07/16 03:47

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/07/16 03:53

回答ありがとうございます。 すみません。楽に、勉強できないかと思いました。 何か、糸口でもあれば、とも思ったのですが…ちょっと足掻いてみます。
Zuishin

2016/07/16 03:58

楽に覚えたものは早く忘れるようにできていますから、あまり物を考えずに技術を高めたいならとにかく頻度を増やして一日中プログラムに漬かるしかありません。 逆に、自分で頭を使ってアルゴリズムを考えて「これでいいかな?」と人のものを見る方が絶対に早いし楽ですよ。
guest

0

投稿2016/07/16 08:56

Mr_Roboto

総合スコア2208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/07/16 09:01

回答ありがとうございます。 凄いですね。世の中には、凄いものを作れる人がいるんですね。 でも、このサイトに載っていないアルゴリズムを動かしたいときは、どうすればよいのでしょうか?
Mr_Roboto

2016/07/16 09:04

自分で作るとか、最後にこう書いてあります。 > parkjs814氏は、このほかのアルゴリズムのプログラムを作成した人に対して、上記GitHubページに公開中のWikiに従ってデータを追加するよう呼びかけています。
Mr_Roboto

2016/07/16 09:06

代表的なものはあると思うので、ここにあるもの理解するだけでも相当スキル上がると思いますよ。 いくつかだけでも分かれば載ってないアルゴリズムも多分自分で書けるようになるでしょう。 ちなみに私も、全然わかりませんのでたまに勉強する気になりますが ちっとも身につきません ^^;
退会済みユーザー

退会済みユーザー

2016/07/17 01:24

ありがとうございます。 同じく、勉強する気になるのですが、全くうまくいきません。^^
guest

0

参考情報:

投稿2016/07/16 04:01

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/07/16 04:21

回答ありがとうございます。 参考URLを付けて下さり、ありがとうございます。 見てみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問