JAva(配列および一般的な単純アルゴリズム)

4456 ワード

はいれつ
≪配列|Array|emdw≫:配列は、同じデータ型データを格納する集合コンテナです.
配列の定義形式:データ型[]変数名=newデータ型[長さ];
配列の利点:配列オブジェクトに割り当てられたデータごとに番号(インデックス値、コーナースケール、下付きスケール)が割り当てられ、インデックス値の範囲は0から始まり、最大は長さ-1です.
ローカル変数:変数がメソッド(関数)の内部で宣言されている場合、変数はローカル変数です.
メンバー変数:メンバー変数はメソッドの外、クラス内に定義されます.
配列で最も一般的な問題:
1.Null PointerException空ポインタ異常原因:参照タイプ変数はオブジェクトを指さず、オブジェクトのプロパティにアクセスしたり、オブジェクトを呼び出したりする方法.2.ArrayIndexOutOfBoundsExceptionインデックス値が境界を越えています.理由:存在しないインデックス値にアクセスしました.
配列の初期化方法:
     :
        []     = new     [  ];

     :  
        []     = {  1,  2.....};

プログラムが最初からデータを特定している場合は、静的初期化を推奨します.データが最初から不明な場合は、ダイナミック初期化を推奨します.
class Demo7 {
    public static void main(String[] args) {    
        //     
        //int[] arr = new int[10];
    
        //     
        int[] arr = {10,20,30,40,50};
        for(int index = 0 ; index
class Demo8 {
    public static void main(String[] args) 
{
        int[] arr = {-12,-14,-5,-26,-4};
        int max = getMax(arr);
        System.out.println("   :"+ max); 
    }

    public static int  getMax(int[] arr) {
        int max = arr[0]; //       
        for(int i = 1 ; i < arr.length ; i++){
            if(arr[i]>max){  //        max ,  max        。
                max = arr[i];
            }
        }
        return max;
    }
}

≪ソートの選択(直接ソート)|Select Sort(Direct Sort)|oem_src≫:1つの要素を使用して他の要素と1つずつ比較し、条件を満たす場所を交換します.
class Demo9 {
    public static void main(String[] args) {
        int[] arr = {12,5,17,8,9};  //  5     ,     4          。
        selectSort(arr);
    }
    
    public static void selectSort(int[] arr) {
        //         。
        for(int j = 0; jarr[j]){
                    //    
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }       
        //    ,    
        System.out.print("     :");
        for (int i = 0 ; i

バブルソート:バブルソートの考え方は、隣接する2つの要素を1つずつ比較し、条件交換位置に合致することです.
class Demo10 {
    public static void main(String[] args) {
        int[] arr = {12,8,17,5,9}; //       : 4     :5 
        bubbleSort(arr);
    }

    public static void bubbleSort(int[] arr){
        //             
        for(int j = 0 ; jarr[i+1]){
                    int temp  = arr[i];
                    arr[i] = arr[i+1];
                    arr[i+1] = temp;
                }
            }
        }
        //    ,    
        System.out.print("     :");
        for (int i = 0 ; i

折半ルックアップ(二分法):使用前提は秩序化された配列である必要があります.
class Demo12 {
    public static void main(String[] args) {
        int[] arr = {12,16,19,23,54};
        //int index = searchEle(arr,23);
        int index = halfSearch(arr,116);
        System.out.println("         :"+ index);
    }   
    public static int halfSearch(int[] arr, int target){
        //            、  、          
        int max = arr.length-1;
        int min = 0;
        int mid = (max+min)/2;
        while(true){
            if(target>arr[mid]){
                min = mid+1;
            }else if(target

2 D配列:2 D配列は配列内の配列です.
2 D配列の定義形式:
データ型[][変数名=newデータ型[長さ1][長さ2];
2 D配列の初期化方法:
     :
    [][]     = new     [  1][  2];  

     :
    [][]      = {{  1,  2...},{  1,  2...},{  1,  2...} ..}
class Demo16 {
    public static void main(String[] args) {
        int[][] arr = {{10,11,9},{67,12},{33,35,39,40}};
        //      
        for(int i = 0;  i 

配列の特徴:
1.配列は、同じデータ型のデータしか格納できません.2.配列は配列に格納された要素にインデックス値を割り当て、インデックス値は0から始まり、最大のインデックス値はlength-1である.3.配列が初期化されると、長さが固定されます.4.配列内の要素と要素の間のメモリアドレスは連続しています.
転載先:https://www.cnblogs.com/intelwisd/p/8038929.html