㈠ java在數組里查找數據
在你查找的輸入數字那段程序中,你看下,直接就是查找到一個然後程序就跳出來了,此時最好的方法是在程序前面定義一個數組,因為你不確定有多少個你要查找的數,該數組用來存儲對應查找的數位置,
你再查詢那段程序改下,讓其不要查找到一個就跳出,而是用一直查找到數組最後,程序我不給你寫了,你先自己試試看看,不行的話,再幫你,畢竟自己實踐是最好的!
㈡ Java用查找演算法的一段代碼如下: 其中boolean A=false; if(name.equals(arr[i])) 麻煩解釋一下 盡量直白
數組從第一個開始比較,完全相同(當前數組值和輸入值一模一樣)A就賦值為true;不一樣A的值不變
㈢ 請用JAVA演算法編寫,隨機生成1-100以內數組,找出最大值和最小值!
//隨機數的個數自己輸入。然後將隨機生成的整數放入數組a中。//有什麼問題可以繼續追問import java.util.Scanner;public class ces {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.print("請輸入要隨機生成數(1-100)的個數:");
int n=in.nextInt();
int[] a=new int[n];
for(int i=0;i<a.length;i++)
a[i]=(int) (Math.random()*100+1);
int max=a[0];
int min=a[0];
for(int j=1;j<a.length;j++)
{
if(a[j]>max) max=a[j];
if(a[j]<min) min=a[j];
}
System.out.println("最大值為:"+max);
System.out.println("最小值為:"+min);
}
}
㈣ java中哪種查找演算法最有效率
這個問題不能一概而論
如果有一種演算法優於其他演算法,那麼其他演算法就不存在了不是?
所以,要看在什麼情況下,那麼有這么幾個方面
背景數量級和匹配數量級,就是說你要在多少數據中查找多少數據。
背景數據差異度,背景數據如果包羅萬象,或者都是數字,那麼選擇的演算法區別就大了
背景數據整理程度。很多人在選擇查找演算法時不考慮這個,但是這在實際應用中很有異議,比如數據都排序過和沒有排序過,可想而知演算法的選擇有很大的不同。
匹配方式,是用「等於」 這種方式匹配,還是用like這種方式匹配,也對演算法有很大影響。
㈤ java怎麼 在數組 查找元素
1
遍歷數組判斷
2
從開始就把數組的內容按照你要查找的那個條件的順序排列存儲,然後
二分法查找
。Arrays類有相關實現,可以參考。或者可以直接用,但是注意使用條件,很重要。
㈥ java常用演算法,給個int數組,數字不連續,找出最小空缺數
public static void main(String[] args) {
int[] array = new int[] {1,2,3,6,7,8,9,10,11,12, 13, 14, 15, 16, 17, 18, 19, 20 };
//將數組拆分
int minque = 1;
if (1 == array[0]){
minque = zhaoque(array);
}
System.out.println(minque);
}
public static int zhaoque(int[] array){
int minque = 1;
//array 不為空
if (null != array && array.length>0){
if (array.length == 1){
minque = array[0]+1;
} else if(array.length == 2){
if (1 == (array[1] - array[0])){
minque = array[1]+1;
} else {
minque = array[0]+1;
}
} else {
int headlength = (array.length+1)/2;
int[] headArray = new int[headlength];
System.array(array,0,headArray,0,headlength);
//檢查前半部分是否密集
int headmin = headArray[0];
int headmax = headArray[headlength-1];
if (headlength > (headmax - headmin)){
//前部分密集分布
int footlength = array.length - headlength;
int[] footArray = new int[footlength];
System.array(array,headlength,footArray,0,footlength);
int footmin = footArray[0];
int footmax = footArray[footlength-1];
// 檢查後部分是否與前部分銜接
if (1 == (footmin - headmax)){
//檢查後部分是否密集
if (footlength > (footmax - footmin)){
//後半部分密集分布
minque = footmax +1;
} else {
minque = zhaoque(footArray);
}
} else {
minque = headmax +1;
}
} else {
minque = zhaoque(headArray);
}
}
}
return minque;
}
㈦ 什麼叫java中的二分查找法
1、演算法概念。
二分查找演算法也稱為折半搜索、二分搜索,是一種在有序數組中查找某一特定元素的搜索演算法。請注意這種演算法是建立在有序數組基礎上的。
2、演算法思想。
①搜素過程從數組的中間元素開始,如果中間元素正好是要查找的元素,則搜素過程結束;
②如果某一特定元素大於或者小於中間元素,則在數組大於或小於中間元素的那一半中查找,而且跟開始一樣從中間元素開始比較。
③如果在某一步驟數組為空,則代表找不到。
這種搜索演算法每一次比較都使搜索范圍縮小一半。
3、實現思路。
①找出位於數組中間的值,並存放在一個變數中(為了下面的說明,變數暫時命名為temp);
②需要找到的key和temp進行比較;
③如果key值大於temp,則把數組中間位置作為下一次計算的起點;重復① ②。
④如果key值小於temp,則把數組中間位置作為下一次計算的終點;重復① ② ③。
⑤如果key值等於temp,則返回數組下標,完成查找。
4、實現代碼。
/**
*description:二分查找。
*@paramarray需要查找的有序數組
*@paramfrom起始下標
*@paramto終止下標
*@paramkey需要查找的關鍵字
*@return
*/
publicstatic<EextendsComparable<E>>intbinarySearch(E[]array,intfrom,intto,Ekey)throwsException{
if(from<0||to<0){
("paramsfrom&lengthmustlargerthan0.");
}
if(from<=to){
intmiddle=(from>>>1)+(to>>>1);//右移即除2
Etemp=array[middle];
if(temp.compareTo(key)>0){
to=middle-1;
}elseif(temp.compareTo(key)<0){
from=middle+1;
}else{
returnmiddle;
}
}
returnbinarySearch(array,from,to,key);
}