国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

珠海做網(wǎng)站哪家專(zhuān)業(yè)seo sem論壇

珠海做網(wǎng)站哪家專(zhuān)業(yè),seo sem論壇,可視化web網(wǎng)站開(kāi)發(fā),長(zhǎng)沙有什么好玩的游樂(lè)場(chǎng)可以使用二分查找法或牛頓迭代法來(lái)實(shí)現(xiàn) LeetCode 問(wèn)題 69. x 的平方根。下面是使用二分查找法和牛頓迭代法的 C 實(shí)現(xiàn)。 二分查找法 #include <iostream>class Solution { public:int mySqrt(int x) {if (x 0) return 0;int left 1, right x, ans 0;while (left <…

可以使用二分查找法或牛頓迭代法來(lái)實(shí)現(xiàn) LeetCode 問(wèn)題 69. x 的平方根。下面是使用二分查找法和牛頓迭代法的 C++ 實(shí)現(xiàn)。

二分查找法

#include <iostream>class Solution {
public:int mySqrt(int x) {if (x == 0) return 0;int left = 1, right = x, ans = 0;while (left <= right) {int mid = left + (right - left) / 2;if (mid <= x / mid) {ans = mid;left = mid + 1;} else {right = mid - 1;}}return ans;}
};int main() {Solution solution;int x = 8;std::cout << "The square root of " << x << " is " << solution.mySqrt(x) << std::endl;return 0;
}

牛頓迭代法

#include <iostream>class Solution {
public:int mySqrt(int x) {if (x == 0) return 0;double x0 = x;while (true) {double xi = 0.5 * (x0 + x / x0);if (abs(x0 - xi) < 1e-7) break;x0 = xi;}return static_cast<int>(x0);}
};int main() {Solution solution;int x = 8;std::cout << "The square root of " << x << " is " << solution.mySqrt(x) << std::endl;return 0;
}

解釋

二分查找法
  1. 初始化:定義 left 為 1,rightx,并初始化 ans 為 0。
  2. 循環(huán):當(dāng) left 小于等于 right 時(shí),計(jì)算 mid 作為中間值。
  3. 判斷:如果 mid 的平方小于等于 x,說(shuō)明 mid 可能是平方根的一部分,更新 ansmid,并移動(dòng) leftmid + 1。否則,移動(dòng) rightmid - 1。
  4. 返回:循環(huán)結(jié)束后,返回 ans。
牛頓迭代法
  1. 初始化:定義 x0x
  2. 迭代:計(jì)算 xi,它是 x0x / x0 的平均值。如果 x0xi 的差異小于一個(gè)很小的值(如 1e-7),則停止迭代。
  3. 更新:將 x0 更新為 xi
  4. 返回:將 x0 轉(zhuǎn)換為整數(shù)并返回。

這兩種方法都能有效地計(jì)算 x 的平方根,并且二分查找法的時(shí)間復(fù)雜度為 O(log x),牛頓迭代法的時(shí)間復(fù)雜度為 O(log x)。你可以根據(jù)需要選擇其中一種方法。

當(dāng)然,使用圖示和例子可以更直觀地理解二分查找算法在計(jì)算平方根整數(shù)部分的過(guò)程。

例子:計(jì)算 10 的平方根的整數(shù)部分

我們以計(jì)算 10 的平方根為例,來(lái)展示整個(gè)過(guò)程。

步驟 1:初始化
  • left = 1
  • right = 10
  • ans = 0
步驟 2:開(kāi)始二分查找
  1. 第一次迭代

    • 計(jì)算中點(diǎn) mid = left + (right - left) / 2 = 1 + (10 - 1) / 2 = 5
    • 檢查 mid * midx 的關(guān)系:5 * 5 = 25,25 > 10,因此更新 rightmid - 1,即 right = 4
    • 圖示:
      搜索區(qū)間: [1, 10]
      mid = 5, 5*5 > 10, 更新right = 4
      
  2. 第二次迭代

    • 計(jì)算中點(diǎn) mid = left + (right - left) / 2 = 1 + (4 - 1) / 2 = 2
    • 檢查 mid * midx 的關(guān)系:2 * 2 = 4,4 < 10,因此更新 ansmid,并更新 leftmid + 1,即 left = 3
    • 圖示:
      搜索區(qū)間: [1, 4]
      mid = 2, 2*2 < 10, 更新left = 3, ans = 2
      
  3. 第三次迭代

    • 計(jì)算中點(diǎn) mid = left + (right - left) / 2 = 3 + (4 - 3) / 2 = 3
    • 檢查 mid * midx 的關(guān)系:3 * 3 = 9,9 < 10,因此更新 ansmid,并更新 leftmid + 1,即 left = 4
    • 圖示:
      搜索區(qū)間: [3, 4]
      mid = 3, 3*3 < 10, 更新left = 4, ans = 3
      
  4. 第四次迭代

    • 計(jì)算中點(diǎn) mid = left + (right - left) / 2 = 4 + (4 - 4) / 2 = 4
    • 檢查 mid * midx 的關(guān)系:4 * 4 = 16,16 > 10,因此更新 rightmid - 1,即 right = 3
    • 圖示:
      搜索區(qū)間: [4, 4]
      mid = 4, 4*4 > 10, 更新right = 3
      
結(jié)束循環(huán)

當(dāng) left > right 時(shí),退出循環(huán),此時(shí) ans 保存的就是最大的滿足條件的整數(shù)。最終結(jié)果為 ans = 3,所以 10 的平方根的整數(shù)部分是 3。

代碼對(duì)應(yīng)的流程

  1. 初始化 left、rightans
  2. 在每次迭代中計(jì)算 mid 并比較 mid * midx
    • 如果 mid * mid 小于等于 x,則更新 ans 并右移 left
    • 如果 mid * mid 大于 x,則左移 right
  3. 循環(huán)結(jié)束后,返回 ans

圖示

初始區(qū)間: [1, 10]第一次迭代:
mid = 5, 5*5 > 10, 更新right = 4
搜索區(qū)間變?yōu)? [1, 4]第二次迭代:
mid = 2, 2*2 < 10, 更新left = 3, ans = 2
搜索區(qū)間變?yōu)? [3, 4]第三次迭代:
mid = 3, 3*3 < 10, 更新left = 4, ans = 3
搜索區(qū)間變?yōu)? [4, 4]第四次迭代:
mid = 4, 4*4 > 10, 更新right = 3
搜索區(qū)間變?yōu)? [4, 3]循環(huán)結(jié)束,返回 ans = 3

這樣,通過(guò)二分查找,我們成功找到并返回了 10 的平方根的整數(shù)部分 3。

http://m.aloenet.com.cn/news/41109.html

相關(guān)文章:

  • 如何做網(wǎng)站的搜索欄網(wǎng)絡(luò)營(yíng)銷(xiāo)的推廣方法有哪些
  • 自己搭建服務(wù)器做網(wǎng)站91手機(jī)用哪個(gè)瀏覽器
  • 網(wǎng)站優(yōu)化主旨百度廣告推廣收費(fèi)標(biāo)準(zhǔn)
  • 武漢專(zhuān)業(yè)網(wǎng)站建設(shè)zz51上海網(wǎng)站制作開(kāi)發(fā)
  • 競(jìng)網(wǎng)做的網(wǎng)站交換鏈接營(yíng)銷(xiāo)成功案例
  • 做網(wǎng)站與考研學(xué)技術(shù)包分配的培訓(xùn)機(jī)構(gòu)
  • WordPress方糖無(wú)錫網(wǎng)站建設(shè)優(yōu)化公司
  • 專(zhuān)業(yè)的團(tuán)隊(duì)網(wǎng)站建設(shè)引擎搜索入口
  • 室內(nèi)裝修設(shè)計(jì)圖紙seo快速軟件
  • 外國(guó)人做外貿(mào)都會(huì)瀏覽哪些網(wǎng)站焊工培訓(xùn)內(nèi)容有哪些
  • 網(wǎng)站建設(shè)常用代碼營(yíng)銷(xiāo)策劃36計(jì)
  • 直播視頻網(wǎng)站如何做網(wǎng)站策劃
  • 佛山專(zhuān)業(yè)做企業(yè)網(wǎng)站上海今天最新發(fā)布會(huì)
  • 吉 360 網(wǎng)站建設(shè)如何做好精準(zhǔn)營(yíng)銷(xiāo)
  • 網(wǎng)站客服工作內(nèi)容重慶網(wǎng)站建設(shè)哪家好
  • 凡客專(zhuān)賣(mài)店網(wǎng)站優(yōu)化入門(mén)
  • 安徽國(guó)貿(mào)集團(tuán)網(wǎng)站建設(shè)沈陽(yáng)網(wǎng)站推廣優(yōu)化
  • 合肥專(zhuān)業(yè)做網(wǎng)站的互聯(lián)網(wǎng)域名注冊(cè)查詢
  • 做網(wǎng)站拍攝照片用什么佳能相機(jī)好網(wǎng)站優(yōu)化課程培訓(xùn)
  • 哪個(gè)網(wǎng)站可以做社工試題網(wǎng)絡(luò)服務(wù)器
  • 湖北住房和城鄉(xiāng)建設(shè)委員會(huì)網(wǎng)站東莞市民最新疫情
  • 三門(mén)峽集團(tuán)網(wǎng)站建設(shè)愛(ài)站網(wǎng)關(guān)鍵詞查詢工具
  • 有沒(méi)有人與動(dòng)物做的電影網(wǎng)站自己做網(wǎng)站怎么做
  • 自適應(yīng)全屏網(wǎng)站競(jìng)價(jià)排名名詞解釋
  • 網(wǎng)站建設(shè)網(wǎng)站排名優(yōu)化金牌服務(wù)搜索引擎排名影響因素有哪些
  • 房屋網(wǎng)簽查詢系統(tǒng)官方網(wǎng)站知乎推廣
  • 個(gè)人網(wǎng)站怎么做推廣好口碑關(guān)鍵詞優(yōu)化
  • 深圳市網(wǎng)站維護(hù)seo短視頻網(wǎng)頁(yè)入口
  • 營(yíng)銷(xiāo)公關(guān)seo關(guān)鍵詞找29火星軟件
  • wordpress博客實(shí)戰(zhàn)青島百度整站優(yōu)化服務(wù)