java二分法,java二分法查找代碼

本文目錄一覽:

java 二分法排序

首先取第一個12,其它元素比12小的放左邊,比12大的放右邊,這樣2,11,12,56,77,34

原來的數組就變成了兩個部分2,11,12和56,77,34

兩個方法按照上面的步驟遞歸排,比如第二部分56,77,34

取第二部分的第一個56,比它小的放左邊,比它大的放右邊,這樣34,56,77

這樣1個數組,分成2各部分,再分成4各部分,一直下去,直到排完

要用到遞歸,二分法就是這樣

怎麼計算java二分法查找的比較次數

您好,我來為您解答:

算法:當數據量很大適宜採用該方法。採用二分法查找時,數據需是有序不重複的。 基本思想:假設數據是按升序排序的,對於給定值 x,從序列的中間位置開始比較,如果當前位置值等於 x,則查找成功;若 x 小於當前位置值,則在數列的前半段中查找;若 x 大於當前位置值則在數列的後半段中繼續查找,直到找到為止。

希望我的回答對你有幫助。

java程序 二分法查找一個數

public

class

Lookup

{

/**

*

@param

args

*/

public

static

void

main(String[]

args)

{

//

TODO

Auto-generated

method

stub

/**

*

二分法查找

*/

int

a[]={23,45,98,100,110,120,140};

int

search=120;//記錄要查找的元素

int

lower=0;//記錄第一個元素

int

temp=a.length-1

;

int

index=-1;

while(lower=temp){

index

=

(lower+temp)/2;//記錄中間元素,用兩邊之和除2.

int

currentValue=a[index];

if(currentValue==search){//如果得到的數與要查找的數相等則break退出;

break;

}else

if(currentValuesearch){//如果得到的數要小於查找的數、就用下標加1;否則減一

lower=index+1;

}else{

temp

=

index-1;

}

}

if(lower=temp){

System.out.println(search+”在數組中第:”+(index+1)+”位”);

}else{

System.out.println(“裡面沒有這個元素”);

}

}

}

Java基礎 遞歸二分法

如果都不滿足條件呢 可能你能確定一定會滿足其中一個 可是程序不能確定是不是一定會滿足其中一個 又不知道如果不滿足要返回什麼 所以報錯啦

java程序 二分法查找一個數

public class Lookup {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

/**

* 二分法查找

*/

int a[]={23,45,98,100,110,120,140};

int search=120;//記錄要查找的元素

int lower=0;//記錄第一個元素

int temp=a.length-1 ;

int index=-1;

while(lower=temp){

index = (lower+temp)/2;//記錄中間元素,用兩邊之和除2.

int currentValue=a[index];

if(currentValue==search){//如果得到的數與要查找的數相等則break退出;

break;

}else if(currentValuesearch){//如果得到的數要小於查找的數、就用下標加1;否則減一

lower=index+1;

}else{

temp = index-1;

}

}

if(lower=temp){

System.out.println(search+”在數組中第:”+(index+1)+”位”);

}else{

System.out.println(“裡面沒有這個元素”);

}

}

}

java二分法查找重複數字的下標?

package pers.ly.javase.algorithm;import java.util.Arrays;/**

* 二分法查找

* @author: Lu Yang

* @date: 2019-01-23 10:50:37

*

*/public class BinarySearch {

public static void main(String[] args) {

Integer[] arr = {10,50,30,40,10,80,90,70,60,40,100,10};

// 數組排序 – 二分法必要條件

Arrays.sort(arr);

System.out.println(Arrays.toString(arr));

System.out.println(binarySearch(arr,50));

}

/**

*

* @author: Lu Yang

* @date: 2019-01-23 11:44:01

* @param arr 數組

* @param value 數組元素值

* @return

*

*/

public static Integer binarySearch(Integer[] arr, Integer value) {

// 定義數組開始位置

Integer start = 0;

// 定義數組結束位置(arr.length是計算數組從1開始的總長度,arr.length-1計算數組從0開始的總長度)

Integer end = arr.length – 1;

// 開始位置 = 結束位置

while (start = end) {

// 定義數組的中心位置(開始位置+結束位置)/2

Integer mid = (start + end) / 2;

// 判斷數組mid位置值(當前數據中間位置值)是否小於傳過來的值

if (arr[mid] value)

// 如果小於傳過來的值,數組開始位置則定義中間位置下標+1

start = mid + 1;

// 判斷數組mid位置值(當前數據中間位置值)是否大於傳過來的值

if (arr[mid] value)

// 如果大於傳過來的值,數組結束位置則定義中間位置下標-1

end = mid – 1;

if (arr[mid] == value)

return mid;

}

return -1;

}}

原創文章,作者:EFMVS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/315784.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
EFMVS的頭像EFMVS
上一篇 2025-01-09 12:14
下一篇 2025-01-09 12:14

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變量和數…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29

發表回復

登錄後才能評論