久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【Java基礎(chǔ) 3】Java 數(shù)組詳解

 小王曾是少年 2023-06-11 發(fā)布于江蘇

🍊 Java學(xué)習(xí):社區(qū)快速通道

文章目錄

1 數(shù)組

1.1 概述

數(shù)組是相同數(shù)據(jù)類型的多個(gè)數(shù)據(jù)的容器,。


這些元素按線性順序排列。所謂線性順序是指除第一個(gè)元素外,每一個(gè)元素都有唯一的前驅(qū)元素;除最后一個(gè)元素外,每一個(gè)元素都有唯一的后繼元素,。(“簡(jiǎn)單理解就是:一個(gè)跟一個(gè)順序排列”)


1.2 創(chuàng)建格式

  • 格式 1. 數(shù)據(jù)類型[] 數(shù)組名稱 = new 數(shù)據(jù)類型[數(shù)組長(zhǎng)度];
int[] a = new int[];
  • 格式 2. 數(shù)據(jù)類型[] 數(shù)組名稱 = {數(shù)組內(nèi)容 1,數(shù)組內(nèi)容 2,數(shù)組內(nèi)容 3…數(shù)組內(nèi)容 n};
int[] a = {1, 2, 3};
  • 格式 3. 數(shù)據(jù)類型[] 數(shù)組名;
    • 格式 3. 屬于只創(chuàng)建了數(shù)組引用名, 并未在內(nèi)存創(chuàng)建數(shù)組空間,。
int[] a;
  • 格式 4. 數(shù)據(jù)類型[] 數(shù)組名稱 = new 數(shù)據(jù)類型[]{內(nèi)容 1,內(nèi)容 2,內(nèi)容 3…內(nèi)容 n};
int[] a = new int[]{1, 2, 3};

1.3 下標(biāo)

可以理解為數(shù)組中內(nèi)容的數(shù)字序號(hào),從 0 開始 ,對(duì)于長(zhǎng)度為 n 的數(shù)組,下標(biāo)的范圍是 0~n-1。

可以通過下標(biāo)的方式訪問數(shù)組中的每一個(gè)元素


1.4 數(shù)組長(zhǎng)度獲取

數(shù)組名稱.length


1.5 注意

使用數(shù)組不當(dāng), 會(huì)出現(xiàn)如下問題:

  • 數(shù)組未賦值: 空指針異常
  • 超出長(zhǎng)度的下標(biāo)操作: 數(shù)組越界異常

注意:數(shù)組的長(zhǎng)度在創(chuàng)建時(shí)就固定了,。


2 數(shù)組常用算法

2.1 冒泡排序

2.1.1 原理

  • 比較相鄰的元素,。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。
  • 對(duì)每一對(duì)相鄰元素做同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì),。在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù),。
  • 針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。
  • 持續(xù)每次對(duì)越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較,。

2.1.2 名稱由來

是因?yàn)樽钚?#xff08;或最大)的元素會(huì)經(jīng)由交換慢慢“浮”到數(shù)列的頂端(降序或升序),就如同水中的氣泡最終會(huì)上浮到頂端一樣,故名“冒泡排序”,。


2.1.3 口訣

升序:

  • N個(gè)數(shù)字來排隊(duì)
  • 兩兩相比小靠前,
  • 外層 循環(huán)length - 1
  • 內(nèi)層循環(huán)length - i - 1

降序:

  • N個(gè)數(shù)字來排隊(duì)
  • 兩兩相比大靠前,
  • 外層 循環(huán)length - 1
  • 內(nèi)層循環(huán)length - i - 1

private static void sort(int[] numbers) {
    for (int i = 0; i < numbers.length - 1; i++) {
        for (int j = 0; j < numbers.length - 1 - i; j++) {
            if (numbers[j] > numbers[j + 1])
                swap(numbers, j, j + 1);
        }
    }
}

2.2 二分查找

2.2.1 概述

二分查找也稱折半查找(Binary Search),它是一種效率較高的查找方法。但是,二分查找要求數(shù)組數(shù)據(jù)必須采用順序存儲(chǔ)結(jié)構(gòu)有序排列,。


2.2.2 原理

假設(shè)數(shù)組中元素是按升序排列,將數(shù)組中間位置的數(shù)據(jù)與查找數(shù)據(jù)比較,如果兩者相等,則查找成功;否則利用中間位置記錄將數(shù)組分成前,、后兩個(gè)子數(shù)組,如果中間位置數(shù)據(jù)大于查找數(shù)據(jù),則進(jìn)一步查找前子數(shù)組,否則進(jìn)一步查找后子數(shù)組。


重復(fù)以上過程,直到找到滿足條件的數(shù)據(jù),則表示查找成功,直到子數(shù)組不存在為止,表示查找不成功,。

private static void binarySearch(int[] numbers, int target){
    int l = 0;
    int r = numbers.length - 1;
    while (l < r){
        int mid = l + (r - l) / 2;
        if (numbers[mid] == target){
            System.out.println("排序后,6的索引是:" + mid);
            return;
        }else if(numbers[mid] > target){
            mid = r;
        }else {
            mid = l;
        }
    }
}

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多