Java ——數組 選擇排序 冒泡排序


本節重點思維導圖

 

 

 

 

 

數組

public static void main(String[] args) {
        int a ;
        a=3;
        
        int[] b;
        b = new int[3];//強制開辟內存空間
        
        int c[] = new int [8];
        
        int[] d = {3,4,5,67};
        int[] e = new int[] {3,4,5};
        
        System.out.println(d[2]);
    }

例題:產生1到100之間所有奇數組成的數組並輸出。要求每10個一行輸出

public class Demo {
        public static void main(String[] args) {
            int[] array = new int[50];

            for (int i = 0; i < 50; i++) {
                array[i] = 2 * i + 1;
            }

            for (int i = 0; i < 50; i++) {
                if (i  % 10 == 0)
                    System.out.println();
                System.out.print(array[i] + "\t");
            }
        }
    
}
    

 

 

 

 多維數組

 

 

 

 

 Arrays 類

 java.util.Arrays 類能方便地操作數組,它提供的所有方法都是靜態的

  • 給數組賦值:通過 fill 方法。
  • 對數組排序:通過 sort 方法,按升序。
  • 比較數組:通過 equals 方法比較數組中元素值是否相等。
  • 查找數組元素:通過 binarySearch 方法能對排序好的數組進行二分查找法操作。

 

 

 

 

額外補充:

存儲在數組當中的數據都屬於同一數據類型

比如說一個 int 類型的數組:

int[] arr = { 'a', 25, 45, 78, 'z' }; System.out.println(Arrays.toString(arr));

輸出結果是:[97, 25, 45, 78, 122]

存放進去的 char 類型的字符會自動轉為 int 類型的 ASCII 碼

上面的代碼中就將 a 轉成了 97,z 轉成了 122。

 

 實現數組和字符串的轉換處理

public class Test {
    public static void main(String args[]) {
        String str = "helloworld";
        char[] data = str.toCharArray();// 將字符串轉為數組
        for (int x = 0; x < data.length; x++) {
            System.out.print(data[x] + "  ");
            data[x] -= 32;
            System.out.print(data[x] + "  ");
        }
        System.out.println(new String(data));
    }
}

 

 

 

冒泡排序

public class BubbleSort {
/**
 * N個數字要排序完成,總共進行N-1趟排序,每i趟的排序次數為(N-i)次,所以可以用雙重循環語句,外層控制循環多少趟,內層控制每一趟的循環次數。
 * @param args
 */
    public static void main(String[] args) {
        int arr[] = {26,15,29,66,99,88,36,77,111,1,6,8,8};
        for(int i=0;i < arr.length-1;i++) {//外層循環控制排序趟數
            for(int j=0; j< arr.length-i-1;j++) {
                        //內層循環控制每一趟排序多少次
                // 把小的值交換到前面
                if (arr[j]>arr[j+1]) {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
            System.out.print("第"+(i+1)+"次排序結果:");
                                //列舉每次排序的數據
            for(int a=0;a<arr.length;a++) {
                System.out.print(arr[a] + "\t");
            }
            System.out.println("");
        }
        System.out.println("最終排序結果:");
        for(int a = 0; a < arr.length;a++) {
            System.out.println(arr[a] + "\t");
        }
    }
}

選擇排序

 

public class Start
{
    public static void main(String[] args)
    {
        int[] arr={20,60,51,81,285,12,165,51,81,318,186,9,70};
        for(int a:arr)
        {
            System.out.print(a+" ");
        }
        
        System.out.println("\n"+"---------------從小到大---------------");
        
        arr=toSmall(arr);
        for(int a:arr)
        {
            System.out.print(a+" ");
        }
        
        System.out.println("\n"+"---------------從大到小---------------");
        
        arr=toBig(arr);
        for(int a:arr)
        {
            System.out.print(a+" ");
        }
    }
//    從大到小
    public static int[] toSmall(int[] arr)
    {
//遍歷數組里除最后一個的其他所有數,因為最后的對象沒有與之可以相比較的數
        for(int i=0;i<arr.length-1;i++)
        {
/*遍歷數組里沒有排序的所有數,並與上一個數進行比較
 *“k=i+1”因為自身一定等於自身,所以相比沒有意義
 *而前面已經排好序的數,在比較也沒有意義
 */
            for(int k=i+1;k<arr.length;k++)
            {
                if(arr[k]<arr[i])//交換條件(排序條件)
                {
                    int number=arr[i];
                    arr[i]=arr[k];
                    arr[k]=number;
                }//交換
            }
        }
        return arr;
    }
//    從小到大
//和前面一樣
    public static int[] toBig(int[] arr)
    {
        for(int i=0;i<arr.length-1;i++)
        {
            for(int k=i+1;k<arr.length;k++)
            {
                if(arr[k]>arr[i])
                {
                    int number=arr[i];
                    arr[i]=arr[k];
                    arr[k]=number;
                }
            }
        }
        return arr;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM