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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

基本情報技術者

基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

Q&A

4回答

439閲覧

基本情報技術試験(FE)のアルゴリズム問題に関して複数の質問です

auiz

総合スコア13

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

基本情報技術者

基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

0グッド

0クリップ

投稿2017/07/23 16:13

基本情報技術試験を今秋受験致します。
午後試験のアルゴリズム問題、データ構造に関しての勉強法なのですが、午後のプログラミング問題はJavaで受験するので、どうせならJavaとアルゴリズムに関して一緒に勉強したいと考えております。
今一いい参考書を探せなかったのですが、
新・明解 Javaで学ぶアルゴリズムとデータ構造
こちらの参考書は、双方の問題を対策する上で有用だと思いますか?
個人的にアルゴリズム問題対策と銘打った書籍は、本試験と同じ疑似言語を使ったものが大半で、将来役に立つか疑問に思ったことと、Java等の言語を実際に使いアルゴリズムをコーディングしたい場合応用が利かなそうだと感じました。

またそもそもの質問ではあるのですがこのアルゴリズム問題やデータ構造の問題は、実務に置いてどのように役に立つのでしょうか。自身はプログラミング歴が2-3年ほどありスマホアプリ、webアプリの開発、リリース経験があるのですが、このアルゴリズムというのを特に意識したことがなかったです。
我流で学習していたこともあり体系だった勉強をしたいと考えたことも受験に至る経緯の一つでございます。
よろしくお願いいたします。

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

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

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

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

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

guest

回答4

0

実装難度の違いはありますが、アルゴリズムは特定の言語に依存しません。だからこそ疑似言語で書かれている書籍が多いんですよ。疑似言語で学ぶからこそ様々な言語に応用できます。

また、現場でほとんどアルゴリズムを意識しないのはライブラリやフレームワーク等の中に封じ込まれているせいで、末端の利用者が意識する必要がないからです。

投稿2017/07/23 17:08

yona

総合スコア18155

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

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

0

プログラムを書くというのはアルゴリズムを言葉にする作業とも言えます。 逆に言えばアルゴリズムというのは特定のプログラミング言語で書かれる前の__考え方__のようなものです。 自分で意識してはいないかもしれませんが、あなたはアルゴリズムを構築してプログラムを書いているのです。 しかし、よく使われるもの、どこでも役に立つものは先人が整理してきた方法があるのだからそれを利用しようという話です。

そして、入門的な教科書にのっているレベルのアルゴリズムというのは要するに既に確立した方法なので、それを実現するライブラリは用意されているということは多いです。 それ故、自分で直接には書くことがないので意識せずに済んできたのだと思います。 しかし、変則的な状況であればちょうど良いライブラリが無いということだって当然あり、その場合は自分で作るしかありません。 また、基本的なアルゴリズムを知らずに (ライブラリが見当らないような) 高度なアルゴリズムを構築できるということはありません。 そういったことを考えずに済む程度のことだけを今までしてきたということなんでしょう。

そして、既存の部品を利用するときにその中身を意識しないでよいかといえばそうではありません。 あなたが読もうとしている参考書は特にデータ構造に着目した本のようですね。 例えばリスト構造ならデータの追加や削除が速いかわりに平均的な探索速度がかなり遅いといった特徴があるように、メリットとデメリットがあります。 あらゆる点で万能などという都合の良いものがあるわけもなく、自分が必要とする場面に適切な部品を選択する必要があります。 そのためには部品の性質をよく把握しておくというのは有用です。

投稿2017/07/23 18:11

SaitoAtsushi

総合スコア5444

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

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

0

今年の秋に受験するなら、時間もあまりありませんし、javaと同じ書籍ではなく別途アルゴリズムに関する書籍で学んだほうがよいと思います。といいますのも、この書籍は試験対策ではないので、効率的ではないように思えます。それに擬似言語で解説されてないと思います。午後の問8だったと思うのですけど、アルゴリズムが擬似言語で出題されますので、やはり対策という点では有用には思えません。それと、アルゴリズムを勉強しても、役にたつかどうかは、何をやるかによっても大きく変わってくると思いますので、このあたりは人それぞれです。

投稿2017/07/23 18:43

xjaPANDA

総合スコア124

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

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

0

実務に置いてどのように役立つのか?

それを全部挙げていたらキリがないですね。
アルゴリズムってどういうものでなんのためにあるのかを考えてみてはどうでしょう?
自ずと答えは見えてくるはずですよ。

投稿2017/07/23 17:59

_Victorique__

総合スコア1392

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問