一个运用二分查找算法的程序的时间复杂度是什么
一个运用二分查找算法的程序的时间复杂度是“对数级别”。二分查找是一种效率较高的查找方法,算法复杂度即是while循环的次数,时间复杂度可以表示“O(h)=O(log2n)”。
本教程操作环境:windows7系统、Dell G3电脑。
一个运用二分查找算法的程序的时间复杂度是“对数级别”。
相关推荐:《编程学习》
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
查找过程:
首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
算法复杂度:
二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果xa[n/2],则只要在数组a的右半部搜索x.
时间复杂度即是while循环的次数。
总共有n个元素,
渐渐跟下去就是n,n/2,n/4,....n/2^k(接下来操作元素的剩余个数),其中k就是循环的次数
由于你n/2^k取整后>=1
即令n/2^k=1
可得k=log2n,(是以2为底,n的对数)
所以时间复杂度可以表示O(h)=O(log2n)
下面提供一段二分查找实现的伪代码:
BinarySearch(max,min,des) mid-<(max+min)/2 while(min<=max) mid=(min+max)/2 if mid=des then return mid elseif mid >des then max=mid-1 else min=mid+1 return max
折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是:(这里假设数组元素呈升序排列)将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止;如 果xa[n/2],则我们只要在数组a的右 半部继续搜索x。
想要查阅更多相关文章,请访问PHP中文网!!
Atas ialah kandungan terperinci 一个运用二分查找算法的程序的时间复杂度是什么. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cara menggunakan C# untuk menulis algoritma carian binari Algoritma carian binari ialah algoritma carian yang cekap yang mencari kedudukan elemen tertentu dalam tatasusunan tertib, dengan kerumitan masa O(logN). Dalam C#, kita boleh menulis algoritma carian binari melalui langkah-langkah berikut. Langkah 1: Sediakan data Mula-mula, kita perlu menyediakan tatasusunan yang diisih sebagai data sasaran untuk carian. Katakan kita ingin mencari kedudukan elemen tertentu dalam tatasusunan. int[]data={1,3,5,7,9,11,13

Punca kubus ialah nilai integer yang, apabila didarab dengan sendirinya tiga kali berturut-turut, menghasilkan nilai asal. Dalam artikel ini, kami akan menulis program Java yang menggunakan carian binari untuk mencari punca kubus nombor. Mencari punca kubus nombor ialah aplikasi algoritma carian binari. Dalam artikel ini, kami akan membincangkan secara terperinci cara menggunakan carian binari untuk mengira punca kubus. Contoh input-output Contoh-1:Input:64Output:4 Contohnya, punca kubus bagi 64 ialah 4, dan output ialah 4. Contoh-2:Input:216Output:6 Contohnya, punca kubus bagi 216 ialah 6, dan keluarannya ialah 6. Carian Binari Carian binari ialah algoritma yang digunakan untuk mencari elemen (iaitu kunci dalam tatasusunan yang diisih). Algoritma Perduaan Berfungsi

Kami tahu bahawa kaedah carian binari adalah algoritma pengisihan yang paling sesuai dan berkesan. Algoritma ini berfungsi pada urutan yang disusun. Algoritmanya mudah, ia hanya mencari elemen dari tengah, kemudian membahagikan senarai kepada dua bahagian dan bergerak ke subsenarai kiri atau subsenarai kanan. Kami tahu algoritmanya. Sekarang kita akan melihat cara menggunakan teknik carian binari dalam persekitaran berbilang benang. Bilangan benang bergantung pada bilangan teras yang terdapat dalam sistem. Mari kita lihat kod untuk mendapatkan idea. Contoh#include<iostream>#defineMAX16#defineMAX_THREAD4usingnamespacestd;//placearr,keyandothervariabl

Bahasa pengaturcaraan C menyediakan dua teknik carian. Mereka adalah seperti berikut: Carian Linear Carian Perduaan Carian Perduaan Kaedah ini hanya sesuai untuk senarai tersusun. Senarai yang diberikan dibahagikan kepada dua bahagian yang sama. Kunci yang diberikan dibandingkan dengan elemen tengah senarai. Di sini, tiga perkara boleh berlaku, seperti berikut: Jika elemen tengah sepadan dengan kata kunci, carian akan berakhir dengan jayanya di sini Jika elemen tengah lebih besar daripada kata kunci, carian akan berlaku di bahagian kiri. Jika elemen tengah lebih kecil daripada kata kunci, carian akan dilakukan pada partition kanan. Input(i/p) - senarai elemen, kata kunci yang tidak diisih. Output (o/p)-kejayaan-jika gagal mencari kata kunci-jika tidak kekunci=20pertengahan=(rendah+tinggi)/2 Program 1 Berikut ialah penggunaan carian binari dalam

Bagaimana untuk melaksanakan algoritma carian binari menggunakan Python? Algoritma carian binari, juga dikenali sebagai algoritma carian binari, ialah algoritma carian yang cekap. Ia berfungsi pada tatasusunan atau senarai tersusun, mengecilkan carian dengan membandingkan nilai sasaran kepada elemen di tengah tatasusunan. Berikut akan memperkenalkan cara melaksanakan algoritma carian binari dalam Python dan memberikan contoh kod khusus. Idea algoritma: Bandingkan nilai sasaran dengan elemen di tengah tatasusunan jika ia sama, kembalikan kedudukan elemen jika nilai sasaran lebih besar daripada elemen di tengah, kemudian di sebelah kanan;

Cara menggunakan Java untuk melaksanakan algoritma carian binari Algoritma carian binari ialah kaedah carian yang cekap sesuai untuk tatasusunan yang disusun. Idea asasnya adalah untuk terus menyempitkan julat carian, membandingkan nilai carian dengan elemen di tengah tatasusunan dan memutuskan sama ada untuk meneruskan carian separuh kiri atau separuh kanan berdasarkan hasil perbandingan sehingga elemen sasaran ditemui atau julat carian dikurangkan kepada kosong. Di bawah ini kami akan memperkenalkan secara terperinci bagaimana untuk melaksanakan algoritma carian binari di Jawa. Langkah 1: Laksanakan kaedah carian binari publicclassBinarySearch

Dalam masalah ini, kita diberikan tatasusunan nombor rasional yang disusun. Kita perlu menggunakan algoritma carian binari untuk mencari elemen tertentu bagi susunan nombor rasional ini tanpa menggunakan operasi titik terapung. Nombor rasional ialah nombor yang dinyatakan dalam bentuk p/q, di mana p dan q adalah kedua-dua integer. Contohnya, ⅔, ⅕. Carian binari ialah teknik carian yang mencari elemen dengan melihat di tengah-tengah tatasusunan. Digunakan untuk mencari elemen dalam tatasusunan nombor rasional yang diisih menggunakan carian binari, di mana operasi titik terapung tidak dibenarkan. Kami akan membandingkan pengangka dan penyebut untuk mengetahui unsur mana yang lebih besar atau unsur mana yang akan dijumpai. Contoh Mari buat atur cara untuk ini, #include<stdio.h>structRational{ &am

Analisis algoritma PHP: Bagaimana untuk menggunakan algoritma carian binari untuk mencari elemen dalam tatasusunan tertib dengan cepat? Gambaran Keseluruhan: Algoritma carian binari ialah algoritma carian yang cekap yang sesuai untuk mencari elemen tertentu dalam tatasusunan tertib. Artikel ini akan memperkenalkan prinsip algoritma carian binari secara terperinci dan memberikan contoh kod PHP. Prinsip: Algoritma carian binari dengan cepat mencari elemen sasaran dengan berulang kali mengurangkan julat carian sebanyak separuh. Prosesnya adalah seperti berikut: pertama, sempitkan julat carian ke permulaan dan penghujung tatasusunan kemudian, hitung indeks elemen tengah dan bandingkan dengan elemen sasaran;