国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【算法】【算法雜談】旋轉數(shù)組的二分法查找

這篇具有很好參考價值的文章主要介紹了【算法】【算法雜談】旋轉數(shù)組的二分法查找。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

當前所有算法都使用測試用例運行過,但是不保證100%的測試用例,如果存在問題務必聯(lián)系批評指正~

在此感謝左大神讓我對算法有了新的感悟認識!

問題介紹

原問題
給定一個從小到大有序的數(shù)組,該數(shù)組存在重復的數(shù),并且該數(shù)組可能經(jīng)過旋轉處理,如arr = [1,2,3,4,5,6,7]代表數(shù)組未旋轉,如果arr=[4,5,6,7,1,2,3],則表示該數(shù)組被旋轉了,求該數(shù)組中的最小值

解決方案

原問題
首先有一個規(guī)律,如果該數(shù)組沒有被旋轉,那么arr[0] 一定小于arr[n-1],否則一定是旋轉過的
【算法】【算法雜談】旋轉數(shù)組的二分法查找
沒有重復的情況如上
=【算法】【算法雜談】旋轉數(shù)組的二分法查找【算法】【算法雜談】旋轉數(shù)組的二分法查找
當l = mid = r相同時:
【算法】【算法雜談】旋轉數(shù)組的二分法查找【算法】【算法雜談】旋轉數(shù)組的二分法查找

比較極端的情況,但是仍然是遞增數(shù)組
【算法】【算法雜談】旋轉數(shù)組的二分法查找

具體代碼請看代碼邏輯處理

代碼編寫

java語言版本

原問題:
方法一:



    /**
     * 二輪測試:旋轉數(shù)組的二分法查找
     * @param arr
     * @return
     */
    public static int getMinCp1(int[] arr) {
        if (arr == null || arr.length == 0) {
            return 0;
        }
        int low = 0;
        int mid = 0;
        int high = arr.length - 1;
        while (low < high) {
            if (low == high - 1) {
                break;
            }
            if (arr[low] < arr[high]) {
                return arr[low];
            }
            mid = (low + high) / 2;
            if (arr[low] > arr[mid]) {
                high = low;
                continue;
            }
            if (arr[low] < arr[mid]) {
                low = mid;
                continue;
            }
            while (low < mid) {
                if (arr[low] < arr[mid]) {
                    return arr[low];
                }else if (arr[low] == arr[mid]) {
                    low++;
                    continue;
                }else {
                    high = mid;
                    break;
                }
            }
        }
        return Math.min(arr[low], arr[high]);
    }


    public static void main(String[] args) {
        System.out.println(getMinCp1(new int[] {1,2,3,4,5}));
    }


c語言版本

正在學習中

c++語言版本

正在學習中

思考感悟

看完解法,說實話我想用O(n)的解法[苦笑],要分析的情況真的挺復雜,不如直接使用O(N)的解法問題,并且在l=mid=r的情況下仍然存在循環(huán)找數(shù)字的情況,可以作為分析娛樂來,但不建議加到業(yè)務代碼中。

寫在最后

方案和代碼僅提供學習和思考使用,切勿隨意濫用!如有錯誤和不合理的地方,務必批評指正~
如果需要git源碼可郵件給2260755767@qq.com
再次感謝左大神對我算法的指點迷津!文章來源地址http://www.zghlxwxcb.cn/news/detail-459458.html

到了這里,關于【算法】【算法雜談】旋轉數(shù)組的二分法查找的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【二分查找】一文帶你掌握二分法 (附萬能模板)

    【二分查找】一文帶你掌握二分法 (附萬能模板)

    一、簡介 哪怕沒有學過編程的同學,也許不知道二分法這個名字,但也一定接觸過它的核心思想。不了解的同學也沒關系,我用一句話就能概括出它的精髓: 將一個區(qū)間一分為二,每次都舍棄其中的一部分。 二分法能夠極大地降低我們在解決問題時的時間復雜度。假如你要

    2024年01月19日
    瀏覽(21)
  • 超詳解“二分法查找”,一看就會!

    超詳解“二分法查找”,一看就會!

    目錄 一、 二分法概念用途 二、 超詳思維圖解 三、? 超詳使用方法實現(xiàn)代碼運行操作 四、? ?總結 五、? ?結語 一:二分法概念用途 ?什么是二分法?有什么作用?一般用在何處? 概念: 二分查找法算法,也叫折半查找算法(對半處理會提高尋找目標數(shù)字的效率); 作用

    2024年02月07日
    瀏覽(26)
  • 【算法】—二分法詳解

    【算法】—二分法詳解

    ①定義: 二分查找算法也稱折半搜索算法,對數(shù)搜索算法,是一種在 有序數(shù)組 中查找某一特定元素的搜索算法。搜索過程從數(shù)組的中間元素開始,如果中間元素正好是要查找的元素,則搜索過程結束;如果某一特定元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素

    2024年02月09日
    瀏覽(24)
  • 算法:二分法---尋找H指數(shù)

    算法:二分法---尋找H指數(shù)

    1、題目: 給你一個整數(shù)數(shù)組 citations ,其中 citations[i] 表示研究者的第 i 篇論文被引用的次數(shù)。計算并返回該研究者的 h 指數(shù) 。 根據(jù)維基百科上 h 指數(shù)的定義: h 代表“高引用次數(shù)” ,一名科研人員的 h 指數(shù) 是指他(她)至少發(fā)表了 h 篇論文,并且每篇論文 至少 被引用

    2024年02月08日
    瀏覽(18)
  • 06-C++ 基本算法 - 二分法

    06-C++ 基本算法 - 二分法

    在這個筆記中,我們將介紹二分法這種基本的算法思想,以及它在 C++ 中的應用。我們將從一個小游戲猜數(shù)字開始,通過這個案例來引出二分法的概念。然后我們將詳細講解什么是二分法以及它的套路和應用。最后,我們還會介紹 C++ STL 中的二分查找函數(shù)。讓我們一起來探索

    2024年02月16日
    瀏覽(16)
  • 【算法訓練-數(shù)組 五】【二分查找】:旋轉排序數(shù)組的最小數(shù)字、旋轉排序數(shù)組的指定數(shù)字

    【算法訓練-數(shù)組 五】【二分查找】:旋轉排序數(shù)組的最小數(shù)字、旋轉排序數(shù)組的指定數(shù)字

    廢話不多說,喊一句號子鼓勵自己:程序員永不失業(yè),程序員走向架構!本篇Blog的主題是【數(shù)組的二分查找】,使用【數(shù)組】這個基本的數(shù)據(jù)結構來實現(xiàn),這個高頻題的站點是: CodeTop ,篩選條件為: 目標公司+最近一年+出現(xiàn)頻率排序 ,由高到低的去 ??蚑OP101 去找,只有兩

    2024年02月09日
    瀏覽(16)
  • 二分法簡單題

    2024年01月24日
    瀏覽(27)
  • 二分法相關使用

    二分法相關使用

    在線OJ:704. 二分查找 有序數(shù)組下的二分思路如下: 由于這里是有序數(shù)組, 我們可以可以先得到中點位置, 中點可以把數(shù)組分為左右兩邊; 如果中點位置的值等于目標值, 直接返回中點位置; 如果中點位置的值小于目標值, 則去數(shù)組中點左側按同樣的方式查找; 如果中點位置的值大

    2024年02月07日
    瀏覽(17)
  • 初探二分法

    初探二分法

    智能化校園:深入探討云端管理系統(tǒng)設計與實現(xiàn)(一) 智能化校園:深入探討云端管理系統(tǒng)設計與實現(xiàn)(二) 題目:給定一個 n 個元素有序的(升序)整型數(shù)組 nums 和一個目標值 target ,寫一個函數(shù)搜索 nums 中的 target,如果目標值存在返回下標,否則返回 -1。 提示: 你可以

    2024年01月25日
    瀏覽(22)
  • 二分法MATLAB代碼

    二分法MATLAB代碼

    本質是通過不斷進行區(qū)間壓縮來獲取函數(shù)零點。 二分法的終止條件:區(qū)間長度小于等于精度要求 。 流程: 如下圖所示:

    2024年02月05日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包