Rumah  >  Artikel  >  hujung hadapan web  >  JavaScript menggunakan algoritma carian binari untuk mencari data dalam petua array_javascript

JavaScript menggunakan algoritma carian binari untuk mencari data dalam petua array_javascript

WBOY
WBOYasal
2016-05-16 16:05:221127semak imbas

Contoh dalam artikel ini menerangkan cara JavaScript menggunakan algoritma carian binari untuk mencari data dalam tatasusunan. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:

Carian binari, juga dikenali sebagai carian separuh, mempunyai kelebihan perbandingan yang lebih sedikit, kelajuan carian yang pantas dan prestasi purata yang baik ialah jadual yang akan dicari adalah jadual yang tersusun, dan sisipan serta pemadaman; adalah sukar. Oleh itu, kaedah carian binari sesuai untuk senarai tertib yang tidak kerap berubah tetapi kerap dicari. Pertama, dengan mengandaikan bahawa elemen dalam jadual disusun dalam tertib menaik, bandingkan kata kunci yang direkodkan di kedudukan tengah jadual dengan kata kunci carian Jika kedua-duanya sama, carian berjaya jika tidak, gunakan rekod kedudukan tengah untuk bahagikan jadual kepada dua sub-jadual, yang pertama dan terakhir Jika Jika kata kunci yang direkodkan di kedudukan tengah lebih besar daripada kata kunci carian, maka subjadual sebelumnya akan dicari lebih jauh, jika tidak subjadual seterusnya akan dicari lebih jauh. Ulangi proses di atas sehingga rekod yang memenuhi syarat ditemui, menjadikan carian berjaya, atau sehingga subjadual tidak wujud, dalam hal ini carian gagal.

var Arr = [3,5,6,7,9,12,15];
function binary(find,arr,low,high){
if(low <= high){
if(arr[low] == find)
return low;
if(arr[high] == find)
return high;
var mid = Math.ceil((high + low)/2);
if(arr[mid] == find){
return mid;
}else if(arr[mid] > find){
return binary(find,arr,low,mid-1);
}else{
return binary(find,arr,mid+1,high);
}
}
return -1;
}
binary(15,Arr,0,Arr.length-1);

Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn