java演算法之 二分查詢找到全部索引

2021-08-26 12:36:17 字數 966 閱讀 3890

陣列中有可能有多個相同資料, 所以建立乙個集合用來存放已經找到的索引

將引數傳進方法內, 接下來實現方法: 

public static void main(string args) ;

arrays.sort(arr);

system.out.println("首先排序: " + arrays.tostring(arr));

scanner input = new scanner(system.in);

system.out.println("請輸入要查詢的數: ");

int a = input.nextint();

listlist = new arraylist<>();

listlist1 = binarysearch(arr,a,0,arr.length-1, list);

//返回的集合為null或者集合長度為0就說明沒有找到

if (list1 != null && list1.size() != 0)else

}

如果中間索引不等於要查詢的值, 就判斷與要查詢的值得相對大小, 將開始索引或者結束索引進行移動, 然後迴圈操作, 迴圈結束後如果還沒有找到就返回乙個空的集合

private static listbinarysearch(int arr,

int a,int beginindex,int endindex,listlist) else if (arr[middleindex] < a)else

}return list;

}private static void nextindex(int arr, int a, int middleindex, listlist)

}private static void preindex(int arr,int a, int middleindex, listlist)

}

java演算法之二分查詢

package com.hym.test.algorithms public class binaryserch public int searchbycycle int thefindnum else if begin end else else if thefindnum arraytest m...

Java演算法之二分查詢演算法

折半查詢又叫二分法查詢,在乙個查詢區間中,確定出查詢區間的中心位置,用待查詢資料元素的關鍵字與中心位置上的資料元素的關鍵字比較,若兩者相等,則查詢成功 否則,若前者小於後者,則把查詢區間定為原查詢區間的前半段繼續這樣的過程 否則,則把查詢區間的後半段繼續這樣的過程。二分查詢演算法是建立在有序陣列基礎...

Java排序演算法之二分查詢

二分查詢特定整數在整型陣列中的位置 非遞迴 查詢線性表必須是有序列表 paramdataset paramdata returnindex public int binarysearch int dataset,int data else if data dataset midindex else ...