ディレクトリ
20182324 2019-2020-1「データ構造とオブジェクト指向プログラミング」9週の学習の概要
コンテンツ概要を学びます
1.検索
指定されたターゲットを見つける検索すると、ターゲットまたは非存在を決定するプロセスにおけるデータ項目のセットです。
リニア検索
検索BINARY
プールやプロパティの規則的な使用を見つけるためのバイナリ検索を、それはまた、テーブルを注文しなければならない必要になります。線形検索と比較して、より効率的な検索のバイナリ。ハッシュルックアップは、
ハッシュ値格納された位置の異なる要素を決定します
2、発注
これは、再配置処理において決定された順序のデータ項目にいくつかの基準によってソートされます。
選択ソート
それによってソートを完了するためにその最終位置に繰り返しある特定の値、。挿入ソート
サブテーブルに反復的に一つの特定の値は、それによってソートを完成、テーブルで注文されています。バブルソート
繰り返し隣接する二つの要素を比較し、必要に応じて、それによって仕分けを完了し、順序を交換しました。クイックソートは、
サブテーブルを分割することにより、再帰的に二つのサブソートテーブルは、それによってソートを完了する。キーは良い分割要素を選択することです。マージソート
、各サブテーブルは一つだけの要素が含まれるまで、再帰的にKohyoは、二つの部分に分け、テーブルは、それによって仕分けを完了し、ソートされたリストにマージされます。ソートアルゴリズムの効率
教科書の学習と問題解決プロセス
- 質問1:どのようなクイックソートの
問題解決方法1:2のサブアロケーションテーブルにより、クイックソートアルゴリズムを再帰的に再ソートテーブル、それによって、順序付けされた値のセットを完成。最良の状況が正しくハブ要素、均一たびに分割シーケンスを選択された、時間計算量はO(N Nログ)であり、最悪の場合には、ハブ要素であるすべてのデータがAに分割され、最大または最小の数でありますバブルソートの順序退化、時間の複雑さはO(n²)です。だから、鍵はすぐにソート良い分割要素を選択することです。
- 質問2:なぜ時々バイナリ検索を使用しますが、要素が現れ見つけることができません
問題2解決策:バイナリ検索の前提はプール要素を見つけることです整然とした秩序の外ならば、その結果は、方向が間違っを見つけるために誤解されます。
プロセスでのコードのデバッグおよび問題解決
- 質問:ジェネリックTは、int型のパラメータを渡すことはできません。
- 課題を解決するための:タイプは、基本データ型の一般的なクラスではありません、整数の変数はint型から変更することができます。参考とすることができるタイプは、一般的な基本データ型のクラスではない理由とint型のJavaインタビューの質問の区別と整数
ホスティングコード
(実行結果はstatistics.shスクリプトをスクリーンショット)
先週試験間違った質問の概要
スタックとキューの理想的な実装では、すべての操作が______________________です。
A.のO(1)
B. O(N)
C. O(N Nログ)
D. O(n²)
E.それは操作に依存
解析:スタックとキューの良い実装では、すべての操作は、一定量を必要とします時間。アレイ内のインデックス0のキューの先頭を格納するキューのアレイベースの実装では、デキュー動作は___________________あります。
実装が不可能A.
B.は、いくつかの特殊なケース有する
C. O(N)
D. O(n²)
上記のE.なし
解析を:それはAの後、インデックスダウンキューのすべての要素をシフトする時間の線形量を必要とします削除が適用されます。デキュー操作が呼び出されたときに、キューの円形アレイベースの実装では、要素はすべてシフトしなければなりません。
A.真
B.偽の
解析:すべてのキューの操作が一定時間内に達成することができるように、キューの円形アレイベースの実装は、シフト素子に必要性を排除します。木の用途の1つは、他のコレクションの単純な実装を提供することです。
A.真
B.偽のヒープは、バイナリ検索ツリーであるので、そこに新しいノードを挿入するための唯一の正しい場所は、それがレベルHまたは場合はレベルh + 1のままで第1の位置に左から次の開放位置のいずれかでありますレベルHがいっぱいです。
A.真
B.偽の
ペアピアレビューと
コメント:
- フォートワース学習問題やブログ:
- イラスト、参照があります
- より多くの熟練使用してマークダウンフォーマット
- コードは、学習や問題価値があります:
- 読みやすいコードフォーマット仕様、空白の使用の合理化、
- 14ポイント:スコアに基づいて、私はこのブログの得点を与えます。次のようにスコアは以下のとおりです。
- 図1に示すように、適切な使用値引き構文(1点)
- 図2に示すように、テンプレートの要素が完了した(1点)
- 3、教科書の学習と問題解決プロセス(2点)
- 図4に示すように、プロセスのコードのデバッグおよび問題解決(1点)
- 5、有効なコード週間にわたり300支店(プラス2ポイント)
- 6.その他のポイント:
- 感情、経験は大きな空の1ポイントを残しません
- プログレスバーは、学習時間を記録し、1ポイントの状況を改善します
- そこハンズオン新しいコードを書くことは、ある1ポイントを追加します
- コードメッセージ仕様1ポイントをコミット
- 深さの間違った質問を学ぶ、1ポイントを追加
- コメントは真剣に、私は、問題やブログのコードに加えて1ポイントを指摘することができます
- ペアは本物のプラス1ポイントを学びます
- 参考例
コメントは、学生のブログやコードを持っていました
- 今週の学習をペア
- ペア学習コンテンツ
- ADTインターフェースのノードの作成、およびリンクのADTインターフェースは、ツリーの確立を適応します。
- バイナリツリー、完全なバイナリツリー、完全なバイナリツリーの概念を理解することを学びます。
- 、見つけるために、木の先行順、前順、後順を使用してバイナリツリーを構築することを学びます。
- バイナリツリーのソート、バイナリツリーの検索を使用することを学びます。
- バイナリ・ソートツリーを達成するために学びます。
その他(知覚、思考、など、別売)
検索とエントリーレベルのアルゴリズムでソートデータ構造は、懲戒時間の深さの研究のための理由はないので、我々は3年前にパスカルの高校を研究し、今それを作ることを望んで、後悔の多くを残しました。
学習の進捗バー
コードの行の数(追加/累算) | ブログ量(追加/蓄積) | 学習時間(追加/蓄積) | 重要な成長 | |
---|---|---|---|---|
目標 | 10,000行 | 30 | 400時間 | |
最初の週 | 109分の109 | 2/2 | 28/28 | Linuxのbashのコマンドに精通したJavaの基本的な構文を学びます |
第二週 | 659分の550 | 1/3 | 51分の23 | JDBデバッガコマンドを習得するために学びます |
第3週 | 1028/1687 | 2/5 | 81分の30 | コンパイルと学習クラス |
4週 | 542/2229 | 2/7 | 103分の22 | 学習オーバーロード、クラスの継承、重合 |
5週目 | 1197/3426 | 2/9 | 118分の15 | 学習Javaのソケット、暗号化アルゴリズムを理解します |
6週 | 1344/4770 | 1/10 | 140分の22 | 学習多型と例外処理 |
7週 | 3190/7960 | 2/12 | 170分の30 | 学習のAndroid |
8週目 | 1588/9548 | 2/14 | 200分の30 | 検索と学習の一種 |
週ナイン | 12700分の3152 | 3/17 | 230分の30 | バイナリツリー、二分探索木とバイナリ・ソートツリーを学びます |
参考:なぜ推定されているソフトウェアエンジニアリングソフトウェア一生懸命、ソフトウェアエンジニアリングの推定法
プランの学習時間:20時間
実際の学習時間:30時間
改善点:
(利用可能もっと見る現代のソフトウェア工学コースウェアソフトウェアエンジニア自己評価形成する能力)