c 排序之二分法

2021-07-30 17:55:09 字數 720 閱讀 4059

1. 二分法查詢是一種非常高效的搜尋方法,主要原理是每次搜尋可以拋棄一半的值來縮小範圍。

在離散數學中,如果f(n)是在規模為n的搜尋序列中搜尋乙個元素所需要的比較次數,

當n是偶數時,f(n)= f(n/2)+2

2. 二分法查詢的時間複雜度是

o(logn)

3. 二分法查詢的適用情況一般滿足以下幾點:(1). 該陣列資料量巨大;. 該陣列已經排序;(3). 一般要求找到的是某乙個值

4. 什麼時候我們可以大致判定該題需要用到二分法:(1). 需要對一道時間複雜度為n的題目進行優化;(2). 在題目中提到給到的陣列已排序;(3). 只搜尋乙個值或乙個位置

5. 二分法的基本**如下:對於特定的題只需要修改某些細節即可。

#include using namespace std;

int search(int arr[10],int target)

if(arr[mid]==target)

if(arr[start]==target)

if(arr[end]==target)

} return -1; }

int main ()

int _target;

cin >> _target;

if(search(_arr,_target)==-1){

cout << "no , the number doesn't exist in the array!" <

排序演算法之 二分法排序

之所以單獨來二分法排序,是因為近些天一直在做二分法查詢的問題,延伸只二分法排序,做此記錄,以便於以後記憶。首先了解下二分法的思想 對於區間 a,b 上連續不斷且f a f b 0的函式y f x 通過不斷地把函式f x 的零點所在的區間一分為二,使區間的兩個端點逐步逼近零點,進而得到零點近似值的方法...

二分法排序C

首先說一下二分法排序的原理,演算法思想簡單描述 在插入第i個元素時,對前面的0 i 1元素進行折半,先跟他們 中間的那個元素比,如果小,則對前半再進行折半,否則對後半 進行折半,直到left right,然後再把第i個元素前1位與目標位置之間 的所有元素後移,再把第i個元素放在目標位置上。二分法排序...

演算法之二分法

演算法 是是一種高效解決問題的辦法 需求 有乙個按照從小到大順序排列的數字列表 需要從該數字列表中找到我們想要的那個乙個數字 如何做更高效?nums 3,4,7,10,13,21,43,77,89 find num 10nums 3,4,13,10,2,7 89 nums.sort 首先進行排序 p...