查詢陣列中的某個元素並返回其索引

2021-10-24 14:15:37 字數 1349 閱讀 7597

遍歷查詢

直接使用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 還有賦值給新陣列這個方法也不是很好 最好使用...