日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

数据结构与算法:二分法

發(fā)布時(shí)間:2025/6/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构与算法:二分法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 在有序數(shù)組中,查找某個(gè)數(shù)是否在數(shù)組中存在? 使用二分法最經(jīng)典。算法復(fù)雜度為(logN).
  • public static boolean exist(int[] sortedArr, int num){if(sortedArr == null || sortedArr.length == 0){return false;}int L = 0;int R = sortedArr.length - 1;int mid = 0; // 中間位置while(L<R){mid = L + ((R-L) >> 1); //mid = (L + R)/2; L+R可能會(huì)造成數(shù)據(jù)溢出if(sortedArr[mid] == num){return true;}else if(num < sortedArr[mid] ){R = mid -1;}else{L = mid + 1;}}return sortedArr[L] == num;}
  • 在一個(gè)有序數(shù)組中,找到 >= 某個(gè)數(shù)最左側(cè)的位置。
  • // 找到 >= value最左邊的位置public static int nearLeft(int[] arr, int value){int L= 0;int R = arr.length - 1;int index = -1;while(L<=R){int mid = L + ((R-L) >> 1);if(arr[mid] >= value){index = mid;R = mid -1;}else{L = mid + 1;}}return index;}
  • 找到 <= value最右側(cè)的位置
  • public static int nearRight(int[] arr, int value){int L= 0;int R = arr.length - 1;int index = -1;while(L<=R){int mid = L + ((R-L) >> 1);if(arr[mid] > value){R = mid -1;}else{index = mid;L = mid + 1;}}return index;}
  • 找到局部最小值
  • public static int getLessIndex(int[] arr){if(arr == null || arr.length == 0){return -1;}// 考慮最最左邊是否局部最小if(arr.length == 1 || arr[0]<arr[1]){return 0;}// 考慮最最右邊是否局部最小if(arr[arr.length-1] < arr[arr.length-2]){return arr.length - 1;}int left = 1;int right = arr.length - 2;int mid = 0;while(left < right){mid = (left + right)/2;if(arr[mid] > arr[mid-1]){right = mid -1;}else if(arr[mid]>arr[mid+1]){left = mid + 1;}else{return mid;}}return left;}

    總結(jié)

    以上是生活随笔為你收集整理的数据结构与算法:二分法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。