遍歷查詢:
直接使用for迴圈從頭到尾遍歷查詢
public
class
arraydemo01
;//根據元素查詢出該元素在陣列中第一次出現的索引
int index =
getindexbyele
(arr,6)
; system.out.
println
("該元素第一次出現在陣列中的索引是:"
+ index);}
private
static
intgetindexbyele
(int
arr,
int ele)
}return-1
;//如果沒有找到要查詢的元素則返回-1;
}}
二分查詢:
需求:使用二分查詢查詢出該元素在陣列中第-次出現的索引
二分查詢的前提是:該陣列的元素必須有序
二分查詢的思想:每一次都查詢中間的元素,比較大小就能減少一半的元素
思路:建立乙個陣列int arr = ;
定義乙個minindex = 0,乙個maxindex = arr.length-1;
獲取中間索引 mid = minindex + (maxindex - minindex)/2;
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-d99mdo4a-1602224066702)(d:\typora\pictrue\image-20201009125311586.png)]
將要查詢的元素x與arr[mid]進行比較,
public
class
arraydemo02
;int index =
getindexbyele
(arr,50)
; system.out.
println
("要查詢的元素的索引是:"
+ index);}
private
static
intgetindexbyele
(int
arr,
int ele)
else
if(ele < arr[mid]
)else
//重新計算mid
mid = minindex +
(maxindex - minindex)/2
;}return-1
;//沒有找到要查詢的元素則返回-1
}}
移除陣列中的某個元素
給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3 ...
陣列的拷貝 從陣列中刪除某個元素
package cn.sxt.array2 陣列的拷貝 public class testarraycopy 從陣列中刪除某個元素 本質上是陣列的拷貝 public static void testbasiccoopy2 string s2 new string 5 system.arraycopy...
將陣列的奇數字的元素存入陣列並返回
public class shuzuhe int jishu new int 10 for int i 0 i jishu i score i 1 for int jishu1 jishu 上題少了一種情況 奇數陣列,果是奇數則長度 length 2 1 還有賦值給新陣列這個方法也不是很好 最好使用...