週7:配列の操作
C言語の学習ノート
ノートのこのシリーズは、ノートの取り方や、自分の結論のいくつかの「言語-Cをプログラミング入門」、複雑なディスクムーのクラスの先生ウェン甲斐浙江大学を学ぶことです。(もちろんビデオスクリーンショットからの記事のスクリーンショットの一部)
コースは、リンクします。https://www.icourse163.org/learn/ZJU-199001 TID = 1206771253#/学ぶ/コンテンツを?
7.1 配列の操作
7.1.1 配列の操作
アレイは広く、検索に使用されています。検索は現在、非常に重要なアプリケーションです。
- 統合された配列の初期化:
我々は、配列a [0] = 2、他の12桁の自動ゼロ充填を得ます。
- だから、私たちは、アレイがすべてに初期化したい場合は0、我々は実際には、直接ではなく、サイクルを行う行くことができます
CNT [ 番号] = {0} ;全てに初期化します0 の
- 統合された初期の位置決め
EG2:INT [10] = {[0] = 2、[2] = 3,6、};
それが与えることである[ 0 割り当て] 2 ; A [ 2 割り当て] 3 ;に[ 3 ]の割り当ての6、0に残りの補数。
- でnは初期化データに位置指定されました
- データはの前の接触位置の後ろに配置されていないいいえ
- ゼロパディング他の場所の価値
- 配列のサイズを与えられないかもしれない、コンパイラ・カウントを聞かせて
- 疎な配列の初期化データのために特に適し
- 配列のサイズを取得する方法?
SIZEOF 何バイト結果の配列を占めています。
sizeofを表示するため%のLU後の結果
sizeof()/はsizeof( [0])は、配列要素が占めます
利点:最初の配列データは、横断コードを変更せずに、修正するたら。
2.アレイの割り当て
ないint型B [] = A
配列変数自体が割り当てることができません。別の配列への配列のすべての要素を入れて、あなたが通過しなければなりません。
これは別の配列、他の方法に割り当てられた配列を置くための唯一の方法です。
前記アレイは、関数に渡さ
- パラメータとして配列は、] [において与えられ、常にアレイ、ライトだけの大きさではないA [] ;(下のスクリーンショットに示すように)
- 関数内で利用することができないのsizeof 計算する配列の要素数を
- 私たちはしばしば、それが関数に渡され、配列のサイズは、他のパラメータとの主な機能は良いです計算する必要があります。(図1のように。長さ)
7.1.2 配列の例は:どのように数が素数でない場合に言うとプライムテーブルを確立するには?三つの方法。
この方法の一つ:
方法2:のみよりテストする必要があり、X は、小さい素数分割することができない。素数テーブルアレイを使用して確立します
方法3:素数のテーブルには、設定します
擬似コード:
添字が範囲外にあるかどうかについての二つの小さな質問:
7.2 検索
7.2.1 線形検索
これは重要です!!!
基本的な方法:トラバース(検索リニアと呼ばれています)
7.2.2 検索の例
データ構造:ハッシュテーブルのハッシュテーブル
构造两个数组,我们在第一个数组中用一个值10得到下标是2,再用这个下标去第二个数组中得到我们想要的结果也就是:dime
割裂的数组有什么问题?
这种程序的结构对于Cache 不友好。
我们希望把面额和名字放在一起。
7.2.3二分搜索
线性搜索最大的问题是它的效率问题。
二分搜索的前提:排好序
二分搜索最大的好处是:效率。 次数: log2N
1000个东西 log2(1000)=10
7.3排序初步
7.3.1选择排序
如果数据是无序的怎么办?
用选择排序的算法来对它进行排序。
第一步:找出最大
第二步:交换 swap a[maxid]和 a[len-1]
选择排序是用来将无序的数组变为有序的数组。