js基本算法:冒泡排序,二分查找
知识扩充:
时间复杂度:算法的时间复杂度是一个函数,描述了算法的运行时间。时间复杂度越低,效率越高。
自我理解:一个算法,运行了几次时间复杂度就为多少,如运行了n次,则时间复杂度为O(n)。
1.冒泡排序
解析:1.比较相邻的两个元素,如果前一个比后一个大,则交换位置。
2.第一轮的时候最后一个元素应该是最大的一个。
3.按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以最后一个元素不用比较。
function sort(elements){ for(var i=0;i<elements.length-1;i++){ for(var j=0;j<elements.length-i-1;j++){ if(elements[j]>elements[j+1]){ var swap=elements[j]; elements[j]=elements[j+1]; elements[j+1]=swap; } } } } var elements = [3, 1, 5, 7, 2, 4, 9, 6, 10, 8]; console.log('before: ' + elements); sort(elements); console.log(' after: ' + elements);
2.快速排序
解析:快速排序是对冒泡排序的一种改进,第一趟排序时将数据分成两部分,一部分比另一部分的所有数据都要小。然后递归调用,在两边都实行快速排序。
function quickSort(elements) { if (elements.length <= 1) { return elements; } var pivotIndex = Math.floor(elements.length / 2); var pivot = elements.splice(pivotIndex, 1)[0]; var left = []; var right = []; for (var i = 0; i < elements.length; i++){ if (elements[i] < pivot) { left.push(elements[i]); } else { right.push(elements[i]); } } return quickSort(left).concat([pivot], quickSort(right)); }; var elements=[5,6,2,1,3,8,7,1.2,5.5,4.5]; alert(quickSort(elements));
3.插入排序
解析:
(1) 从第一个元素开始,该元素可以认为已经被排序
(2) 取出下一个元素,在已经排序的元素序列中从后向前扫描
(3) 如果该元素(已排序)大于新元素,将该元素移到下一位置
(4) 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
(5)将新元素插入到下一位置中
(6) 重复步骤2
insertSort: function(elements) { var i = 1, j, step, key, len = elements.length; for (; i < len; i++) { step = j = i; key = elements[j]; while (--j > -1) { if (elements[j] > key) { elements[j + 1] = elements[j]; } else { break; } } elements[j + 1] = key; } return elements; }
2.二分查找
解析:二分查找,也为折半查找。首先要找到一个中间值,通过与中间值比较,大的放又,小的放在左边。再在两边中寻找中间值,持续以上操作,直到找到所在位置为止。
(1)递归方法
function binarySearch(data,item,start,end){ var end=end || data.length-1; var start=start || 0; var m=Math.floor((start+end)/2); if(item==data[m]){ return m; }else if(item<data[m]){ return binarySearch(data,item,start,m-1) //递归调用 }else{ return binarySearch(data,item,m+1,end); } return false; } var arr=[34,12,5,123,2,745,32,4]; binary(arr,5);
(2)非递归方法
function binarySearch(data, item){ var h = data.length - 1, l = 0; while(l <= h){ var m = Math.floor((h + l) / 2); if(data[m] == item){ return m; } if(item > data[m]){ l = m + 1; }else{ h = m - 1; } } return false; } var arr=[34,12,5,123,2,745,32,4]; binarySearch(arr,5);

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

AI Hentai Generator
Menjana ai hentai secara percuma.

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

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

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

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;

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

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;
