目錄
輸入-輸出範例
二分查找
使用二分查找查找鍵的範例
問題
解決方案
使用二分搜尋找出立方根的演算法
Example
範例
輸出
首頁 Java java教程 使用二分查找演算法找出一個數的立方根的Java程序

使用二分查找演算法找出一個數的立方根的Java程序

Aug 28, 2023 pm 01:33 PM
java程式 立方根 二分查找

使用二分查找演算法找出一個數的立方根的Java程序

立方根是一個整數值,當它自己連續乘以自己三次時,得到原始數值。在本文中,我們將寫一個使用二分搜尋來找出一個數的立方根的Java程式。找到一個數的立方根是二分搜尋演算法的一個應用之一。在本文中,我們將詳細討論如何使用二分搜尋來計算立方根。

輸入-輸出範例

Example-1: 
Input: 64 
Output: 4 
登入後複製

如,64的立方根為4,輸出為4。

Example-2: 
Input: 216
Output: 6  
登入後複製

如,216的立方根為6,輸出為6。

二分查找

二分搜尋是一種用來尋找元素(即排序數組中的鍵)的演算法。二進位演算法的工作原理如下

  • 假設陣列是「arr」。依升序或降序對數組進行排序。

  • 初始化 low = 0 和 high = n-1(n = 元素數量),並將 mid 計算為 middle = low (high-low)/2。如果 arr[middle] == key 則傳回 middle,即數組的中間索引。

  • 如果鍵值小於arr[middle]元素,則將高索引設為中間索引-1;如果鍵值大於中間元素,則將低索引設為中間索引 1

  • 繼續二分查找,直到找到需要查找的元素。

  • 如果low大於high,則直接回傳false,因為鍵值在陣列'arr'中不存在。

使用二分查找查找鍵的範例

問題

給定一個有序整數數組 arr = [1, 3, 5, 7, 9, 11],使用二分查找找到元素的索引,即 key = 7。

解決方案

  • 初始化 low = 0 和 high= 5(陣列的最後一個索引)。

  • while 迴圈的第一次迭代給出了中間索引 mid = low (high-low)/2

  • 中位數 = 0 (5-0)/2 = 2。

  • arr[mid]的值為5,小於鍵值7。因此,我們更新low= mid 1 = 3。

  • while 迴圈的第二次迭代透過使用 low (high-low)/2 為我們提供中間索引 mid = 4。

  • arr[mid]的值為9,大於鍵值7。因此,我們更新high= 3(mid - 1)。

  • while 迴圈的第三次迭代為我們提供了中間索引 mid = 3。

  • arr[mid] 是 7,等於關鍵值。因此,我們返回中間索引,即 3。

  • 因此,在給定的陣列中,關鍵字的索引為7,我們使用二分查找演算法找到了索引為3。

使用二分搜尋找出立方根的演算法

步驟 1 - 考慮一個數字'n',並初始化low=0和right=n(給定的數字)。

第 2 步 - 使用 mid = low (high-low)/2 找出低值和高值的中位數。

步驟 3 − 求 mid * mid * mid 的值,如果 mid * mid * mid == n,則傳回 mid 的值。

步驟 4 - 如果中間值小於 n,則 low=mid 1,否則 high=mid-1

第 5 步 - 重複第 2 步到第 4 步,直到找到該值。

Example

的中文翻譯為:

範例

在這個例子中,我們使用二分查找演算法來找到一個值的立方根。我們創建了一個自訂類別'BinarySearchCbrt',並在'cuberoot'函數中實作了用於找到一個數字的立方根的二分查找程式碼。現在,建立自訂類別物件並初始化一個名為'number'的整數變量,使用類別物件呼叫'cuberoot'函數,從而顯示所需的輸出。

//Java Program to find Cube root of a number using Binary Search
import java.util.*;
class BinarySearchCbrt {
   public  int cuberoot(int number) {
      int low = 0;
      int high = number;
      while (low <= high) {
         int mid = (low + high) / 2;
         int cube = mid * mid*mid;
         if (cube == number) {
            return mid;
         } else if (cube < number) {
            low = mid + 1;
         } else {
            high = mid - 1;
         }
      }
      return 0;
   }
}
public class Main {
   public static void main(String[] args) {
      int n = 64;
      BinarySearchCbrt Obj  = new  BinarySearchCbrt();
      int result= Obj.cuberoot(n);
      System.out.println("Cube root of " + n + " = " + result);
   }
}
登入後複製

輸出

Cube root of 64 = 4 
登入後複製

時間複雜度:O(NlogN) 輔助空間:O(1)

因此,在本文中我們討論瞭如何使用 Java 中的二分查找演算法來尋找數字的立方根。

以上是使用二分查找演算法找出一個數的立方根的Java程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
Java程式開啟命令提示字元並插入命令 Java程式開啟命令提示字元並插入命令 Aug 19, 2023 pm 12:29 PM

本文使用多種方法透過 Java 程式碼選擇在開啟的命令視窗中插入的命令。命令視窗是使用「cmd」開啟的。這裡,使用 Java 程式碼指定執行相同操作的方法。首先使用 Java 程式開啟命令視窗。

Java程式用於檢查TPP學生是否有資格參加面試 Java程式用於檢查TPP學生是否有資格參加面試 Sep 06, 2023 pm 10:33 PM

請考慮下表了解不同公司的資格標準-CGPA的中文翻譯為:績點平均成績符合條件的公司大於或等於8谷歌、微軟、亞馬遜、戴爾、英特爾、Wipro大於或等於7教程點、accenture、Infosys 、Emicon、Rellins大於或等於6rtCamp、Cyber​​tech、Skybags、Killer、Raymond大於或等於5Patronics、鞋子、NoBrokers讓我們進入java程式來檢查tpp學生參加面試的資格。方法1:使用ifelseif條件通常,當我們必須檢查多個條件時,我們會使用

Java程式取得給定檔案的大小(以位元組、千位元組和兆位元組為單位) Java程式取得給定檔案的大小(以位元組、千位元組和兆位元組為單位) Sep 06, 2023 am 10:13 AM

檔案的大小是特定檔案在特定儲存裝置(例如硬碟)上所佔用的儲存空間量。檔案的大小以位元組為單位來衡量。在本節中,我們將討論如何實作一個java程式來取得給定檔案的大小(以位元組、千位元組和兆位元組為單位)。位元組是數字資訊的最小單位。一個位元組等於八位元。 1千位元組(KB)=1,024位元組1兆位元組(MB)=1,024KB千兆位元組(GB)=1,024MB和1太字節(TB)=1,024GB。文件的大小通常取決於文件​​的類型及其包含的資料量。以文字文件為例,文件的大小可能只有幾千字節,而高解析度圖像或影片檔案的大小可

使用繼承的Java程式來計算定期存款(FDs)和定期存款(RDs)的利息 使用繼承的Java程式來計算定期存款(FDs)和定期存款(RDs)的利息 Aug 20, 2023 pm 10:49 PM

繼承是一個概念,它允許我們從一個類別存取另一個類別的屬性和行為。被繼承方法和成員變數的類別稱為超類別或父類,而繼承這些方法和成員變數的類別稱為子類別或子類別。在Java中,我們使用「extends」關鍵字來繼承一個類別。在本文中,我們將討論使用繼承來計算定期存款和定期存款的利息的Java程式。首先,在您的本機機器IDE中建立這四個Java檔案-Acnt.java−這個檔案將包含一個抽象類別‘Acnt’,用於儲存帳戶詳情,如利率和金額。它還將具有一個帶有參數‘amnt’的抽象方法‘calcIntrst’,用於計

使用類別的概念編寫Java程式來計算矩形的面積和周長 使用類別的概念編寫Java程式來計算矩形的面積和周長 Sep 03, 2023 am 11:37 AM

Java語言是當今世界上最常用的物件導向程式語言之一。類別的概念是物件導向語言中最重要的特性之一。一個類別就像一個物件的藍圖。例如,當我們想要建造一棟房子時,我們首先創建一份房子的藍圖,換句話說,我們創建一個顯示我們將如何建造房子的計劃。根據這個計劃,我們可以建造許多房子。同樣地,使用類,我們可以創建許多物件。類別是創建許多物件的藍圖,其中物件是真實世界的實體,如汽車、自行車、筆等。一個類別具有所有物件的特徵,而物件具有這些特徵的值。在本文中,我們將使用類別的概念來編寫一個Java程序,以找到矩形的周長和麵

如何使用C#寫二分查找演算法 如何使用C#寫二分查找演算法 Sep 19, 2023 pm 12:42 PM

如何使用C#編寫二分查找演算法二分查找演算法是一種高效率的查找演算法,它在有序數組中尋找特定元素的位置,時間複雜度為O(logN)。在C#中,我們可以透過以下幾個步驟來編寫二分查找演算法。步驟一:準備資料首先,我們需要準備一個已經排好序的陣列作為尋找的目標資料。假設我們要在陣列中尋找特定元素的位置。 int[]data={1,3,5,7,9,11,13

JAVA程式將羅馬數字轉換為整數數字 JAVA程式將羅馬數字轉換為整數數字 Aug 25, 2023 am 11:41 AM

羅馬數字-基於古羅馬系統,使用符號來表示數字。這些數字稱為羅馬數字。符號為I、V、X、L、C、D和M,分別代表1、5、10、50、100、500和1,000。整數-整數就是由正值、負值和零值所組成的整數。分數不是整數。這裡我們根據整數值設定符號值。每當輸入羅馬數字作為輸入時,我們會將其劃分為單位,然後計算適當的羅馬數字。 I-1II–2III–3IV–4V–5VI–6...X–10XI–11..XV-15在本文中,我們將了解如何在Java中將羅馬數字轉換為整數。向您展示一些實例-實例1InputR

Java程式旋轉影像 Java程式旋轉影像 Sep 01, 2023 pm 04:25 PM

一個影像檔案可以順時針或逆時針旋轉。要旋轉圖像,需要下載一個隨機的圖像檔案並將其保存在系統的任何資料夾中。此外,需要一個.pdf文件,在打開下載的圖像文件後,可以在該特定的.pdf文件中旋轉一些角度。對於90度的旋轉,新影像的錨點可以幫助我們使用Java中的平移變換執行旋轉操作。錨點是任何特定圖像的中心。 AlgorithmtoRotateanImagebyUsingJavaThe"AffineTransformOp"classisthesimplestwaytorotatea

See all articles