Rumah hujung hadapan web tutorial js js基本算法:冒泡排序,二分查找

js基本算法:冒泡排序,二分查找

Oct 08, 2016 pm 05:51 PM

知识扩充:

  时间复杂度:算法的时间复杂度是一个函数,描述了算法的运行时间。时间复杂度越低,效率越高。

  自我理解:一个算法,运行了几次时间复杂度就为多少,如运行了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(&#39;before: &#39; + elements);
sort(elements);
console.log(&#39; after: &#39; + elements);
Salin selepas log masuk

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));
Salin selepas log masuk

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;
}
Salin selepas log masuk

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);
Salin selepas log masuk

(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);
Salin selepas log masuk


Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menulis algoritma carian binari menggunakan C# Bagaimana untuk menulis algoritma carian binari menggunakan C# Sep 19, 2023 pm 12:42 PM

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

Program carian binari yang ditulis dalam bahasa C, menggunakan pthread untuk pemprosesan berbilang benang Program carian binari yang ditulis dalam bahasa C, menggunakan pthread untuk pemprosesan berbilang benang Aug 26, 2023 pm 12:45 PM

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

Program Java untuk mencari punca kubus nombor menggunakan algoritma carian binari Program Java untuk mencari punca kubus nombor menggunakan algoritma carian binari Aug 28, 2023 pm 01:33 PM

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? Bagaimana untuk melaksanakan algoritma carian binari menggunakan Python? Sep 20, 2023 pm 01:24 PM

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;

Bagaimana untuk mencari elemen terkecil dalam tatasusunan menggunakan algoritma carian binari dalam bahasa C? Bagaimana untuk mencari elemen terkecil dalam tatasusunan menggunakan algoritma carian binari dalam bahasa C? Aug 25, 2023 pm 08:37 PM

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 java Bagaimana untuk melaksanakan algoritma carian binari menggunakan java Sep 19, 2023 pm 12:57 PM

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 program C, gunakan algoritma carian binari untuk mencari nombor rasional tanpa menggunakan aritmetik titik terapung Dalam program C, gunakan algoritma carian binari untuk mencari nombor rasional tanpa menggunakan aritmetik titik terapung Aug 27, 2023 pm 06:05 PM

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? Analisis algoritma PHP: Bagaimana untuk menggunakan algoritma carian binari untuk mencari elemen dalam tatasusunan tertib dengan cepat? Sep 19, 2023 pm 01:14 PM

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;

See all articles