1 / * 30 [プログラム番号】インサート30
2 タイトル:アレイの行は、良好な配列を有します。今、配列にそれの挿入元の法律に必要な数を入力します。
3つの プログラム解析:最初の番号が最後の番号よりも大きいか否かを決定し、次いでケース考える場所後、この要素の挿入後の中間挿入の数、
4 の数、ターン後退位置。
5 * /
6
。7 / * 分析
8 (11の総; 1,3,5,7,9,11,13,15,17,19,21:* 1、例えば昇順に優れたアレイは、ありますそれを12 A)を挿入数、
9 * 2、数(例えば10又は22)を挿入;
10 最後の数よりも多い、全直接最後に排出されるので、その後、* 3、(1)22
11 *(2)10を、次いでアレイ、11、13を挿入するように、すべてが動いて.. 。他の数の後ろに
12 * 4、位置を挿入し、ループのために使用======挿入するための余地を作るために戻す方法を決定することの困難、見つけるために、一つずつ横断[I] <= X < = A [I + 1]ここで、
13 *、その後、中間変数tと移動する
14 * * /
15
16 / *[注]
17 *アレイの拡張アレイ= Arrays.copyOf(アレイ、Array.lengthと+ 1); // 拡張アレイ
18は * * /
19
20
21である パッケージの宿題、
22である
23ことである インポートjava.util.Arrays;
24の インポートjava.utilのクラス.SCANNER;
25
26は、 パブリック クラス値30 {
27
28 公共 静的 ボイドメイン(文字列[]引数){
29 // 12の整数配列サイズ宣言
30 INTを [] = {1,3,5,7,9 A 、11,13,15,17,19,21 };
31 //は、インサートの数入力
32 System.out.println( "挿入する整数を入力してください" );
33である 整数 X = 新しい新しいスキャナ(System.in).nextInt();
34である
35 // 鍵拡張のアレイ===比較
36 A = Arrays.copyOf (a.length + 1 );
37 // 宣言は、整数配列の長さを表し
38はある INT長= a.length;
39
40 // 挿入される比較は、配列の最後の番号の数よりも大きい
41は // のSystem.out .println([-a.length 1。]);
42れる IF(X> [長-2]){ // 最後よりX数の大きい
43は、 [-length 1] = X;
44である }
45 他 { // Xは、最後の数未満である
46 //はの位置を見つけるために配列添字の保存場所を宣言
47 のint = 0位置を、
48 // 反復挿入の位置を見つけることでなければならない
49 のために(INT I = 0、I <a.length; I ++ ){
50 IF(([I] <= X) - ([I + 1]> = X)){
51が 位置= I + 1; //は、前の位置の数を見つけます。後に、全てがここに加え、間に挿入されるように1。
52が BREAK ;
53である }
54である }
55 // // テスト
56 // System.out.println(位置)
57
58 // 开始移动数据
59 用(INTは iは長さ=、iは>位置; i-- ){
60 [I-1] = [I-2 ]。
61 }
62 [位置] = X。
63 }
64 // 输出数组
65 のために(INT iは= 0; I <a.length; iは++ ){
66 System.out.print([I] +」 " )。
67 }
68
69
70 }
71
72 }