Java基礎之陣列,排序,二分折半查詢

2021-08-19 03:58:14 字數 2715 閱讀 9225

陣列概述:用於將相同資料型別儲存在記憶體中

宣告格式:

元素型別 陣列名稱 = new 元素型別[長度];

建立陣列: int arr = new int[5];

陣列特點:一旦建立,必須

明確長度

記憶體圖

常見陣列異常

arrayindexoutofbound***ception

陣列角標越界

nullpointerexception

引用型變數沒有指向任何實體的時候,就會發生空指標異常     int arr = null

[i@c17164

int arr = new int[3]; sop(arr);

遍歷:

核心思想:

就是對角標的操作

,只要拿到角標,運算元組就易如反掌

用到的屬性:

length

正向遍歷

for(int x=0; x<=arr.length; x++)

反向遍歷

for(int x=arr.length-1; x>=0; x--)

最值:int arr = new int[5];

int max = 0;   如果值為負數,和0比,0就是最大的了,因此要在"內部"比較

for(int x=0; x }

//錯誤的比較方法

元素的比較

int arr = new int[5];

int max = arr[0];

for(int x=1; x

}

角標的比較

int arr = new int[5];

int maxindex = 0;

for(int x=0; x

}arr[maxindex]就是最大值

}封裝交換方法

public static void swap(

int arr, int x, int y)

陣列-查詢/*

查詢指定的數值出現的位置

明確一:該功能的最終結果是 int

明確二:該功能在實現的過程中是否需要未知內容參與運算  陣列和要找的值

*/public

static

int

getindex(

int

arr, 

int

key)

return

-1;}高效率查詢-折半(二分)

折半查詢,第二種寫法

int max,min,mid;

min = 0;

max = arr.length-1;

while(max > min)

else if(key < arr[mid])

else

} return -1;

二維陣列

格式:int arr = new int[3][2];

int arr = new int[3];

int arr = ,,};

遍歷:          for(int x = 0; x < arr.length; x++)

}求和:

int sum = 0;

for(int x = 0; x < arr.length; x++)

} system.out.print(sum);

二分折半排序

板子 插入後,每次與中間值相比較,再與左半部分中間值比較,再與右半部份中間值比較,直到找到它自己的位置,待排序資料 2,1,6,7,4 資料部分 原文 取第乙個元素作為有序表,剩餘的元素作為無序表 其中有序表 2 無序表 1,6,7,4 第一次比較,從無序表中取出第乙個數 1,與中間值2比較,1 2...

Java 二分折半查詢法

二分折半查詢,效率比較高,每次都從範圍最中間開始比較,然後逐漸縮小範圍,二分折半查詢法的要求就是該序列在使用之前一定是要有序的,不然二分折半查詢對其沒有作用。先分析一下折半查詢 int a 在這裡我們先定義乙個陣列 然後我們查詢乙個10這個數字,第一次比較的時候,由兩邊的位置來找到中間的位置然後和中...

二分 折半 查詢

折半查詢 又叫二分查詢,採用分治思想,適用於不經常變動且查詢頻繁的表 演算法思想 將n個元素 假設n個元素公升序 分為大致相同的兩部分,取data n 2 與目標元素m比較 若data n 2 m return n 2 若data n 2 m 則我們只要在data的左半部分繼續查詢 若data n ...