陣列概述:用於將相同資料型別儲存在記憶體中
宣告格式:
元素型別 陣列名稱 = new 元素型別[長度];
建立陣列: int arr = new int[5];
陣列特點:一旦建立,必須
明確長度
記憶體圖
常見陣列異常
arrayindexoutofbound***ception
陣列角標越界
nullpointerexception
引用型變數沒有指向任何實體的時候,就會發生空指標異常 int arr = null
[i@c17164
int arr = new int[3]; sop(arr);
遍歷:
核心思想:
就是對角標的操作
,只要拿到角標,運算元組就易如反掌
用到的屬性:
length
正向遍歷最值:int arr = new int[5];for(int x=0; x<=arr.length; x++)
反向遍歷
for(int x=arr.length-1; x>=0; x--)
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 ...