Maison interface Web js tutoriel 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);
Copier après la connexion

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));
Copier après la connexion

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;
}
Copier après la connexion

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);
Copier après la connexion

(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);
Copier après la connexion


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment écrire un algorithme de recherche binaire en utilisant C# Comment écrire un algorithme de recherche binaire en utilisant C# Sep 19, 2023 pm 12:42 PM

Comment utiliser C# pour écrire un algorithme de recherche binaire. L'algorithme de recherche binaire est un algorithme de recherche efficace. Il trouve la position d'un élément spécifique dans un tableau ordonné avec une complexité temporelle de O(logN). En C#, nous pouvons écrire un algorithme de recherche binaire en suivant les étapes suivantes. Étape 1 : Préparer les données Tout d’abord, nous devons préparer un tableau trié comme données cibles pour la recherche. Supposons que nous voulions trouver la position d'un élément spécifique dans un tableau. int[]données={1,3,5,7,9,11,13

Programme de recherche binaire écrit en langage C, utilisant pthread pour le traitement multi-thread Programme de recherche binaire écrit en langage C, utilisant pthread pour le traitement multi-thread Aug 26, 2023 pm 12:45 PM

Nous savons que la méthode de recherche binaire est l’algorithme de tri le plus adapté et le plus efficace. Cet algorithme fonctionne sur des séquences triées. L'algorithme est simple, il trouve simplement l'élément du milieu, puis divise la liste en deux parties et se déplace vers la sous-liste de gauche ou la sous-liste de droite. Nous connaissons son algorithme. Nous allons maintenant voir comment utiliser la technique de recherche binaire dans un environnement multi-thread. Le nombre de threads dépend du nombre de cœurs présents dans le système. Jetons un coup d'œil au code pour avoir une idée. Exemple#include<iostream>#defineMAX16#defineMAX_THREAD4usingnamespacestd;//placearr,keyandothervariabl

Comment trouver le plus petit élément d'un tableau à l'aide d'un algorithme de recherche binaire en langage C ? Comment trouver le plus petit élément d'un tableau à l'aide d'un algorithme de recherche binaire en langage C ? Aug 25, 2023 pm 08:37 PM

Le langage de programmation C propose deux techniques de recherche. Ils sont les suivants : Recherche linéaire Recherche binaire Recherche binaire Cette méthode ne convient qu'aux listes ordonnées. La liste donnée est divisée en deux parties égales. La clé donnée est comparée à l'élément du milieu de la liste. Ici, trois choses peuvent se produire, comme suit : Si l'élément du milieu correspond au mot-clé, la recherche se terminera avec succès ici. Si l'élément du milieu est plus grand que le mot-clé, la recherche aura lieu dans la partition de gauche. Si l'élément du milieu est plus petit que le mot-clé, la recherche sera effectuée sur la partition de droite. Entrée (i/p) - liste non triée d'éléments, mots-clés. Sortie (o/p)-succès-si échec de la recherche du mot-clé-sinon key=20mid=(low+high)/2 Programme 1 Ce qui suit est l'utilisation de la recherche binaire dans

Comment implémenter un algorithme de recherche binaire en utilisant Java Comment implémenter un algorithme de recherche binaire en utilisant Java Sep 19, 2023 pm 12:57 PM

Comment utiliser Java pour implémenter un algorithme de recherche binaire L'algorithme de recherche binaire est une méthode de recherche efficace adaptée aux tableaux triés. Son idée de base est de restreindre continuellement la plage de recherche, de comparer la valeur de recherche avec les éléments du milieu du tableau et de décider s'il faut continuer la recherche dans la moitié gauche ou la moitié droite en fonction du résultat de la comparaison jusqu'à ce que l'élément cible soit trouvé ou la plage de recherche est réduite à vide. Ci-dessous, nous présenterons en détail comment implémenter l'algorithme de recherche binaire en Java. Étape 1 : Implémenter la méthode de recherche binaire publicclassBinarySearch

Comment implémenter un algorithme de recherche binaire en utilisant Python ? Comment implémenter un algorithme de recherche binaire en utilisant Python ? Sep 20, 2023 pm 01:24 PM

Comment implémenter un algorithme de recherche binaire en utilisant Python ? L'algorithme de recherche binaire, également connu sous le nom d'algorithme de recherche binaire, est un algorithme de recherche efficace. Il fonctionne sur des tableaux ou des listes ordonnés, en limitant la recherche en comparant la valeur cible aux éléments au milieu du tableau. Ce qui suit présentera comment implémenter l'algorithme de recherche binaire en Python et fournira des exemples de code spécifiques. Idée d'algorithme : comparez la valeur cible avec l'élément du milieu du tableau ; s'ils sont égaux, renvoyez la position de l'élément si la valeur cible est supérieure à l'élément du milieu, alors à droite ;

Programme Java pour trouver la racine cubique d'un nombre à l'aide d'un algorithme de recherche binaire Programme Java pour trouver la racine cubique d'un nombre à l'aide d'un algorithme de recherche binaire Aug 28, 2023 pm 01:33 PM

Une racine cubique est une valeur entière qui, multipliée par elle-même trois fois de suite, donne la valeur d'origine. Dans cet article, nous allons écrire un programme Java qui utilise la recherche binaire pour trouver la racine cubique d'un nombre. Trouver la racine cubique d'un nombre est une application de l'algorithme de recherche binaire. Dans cet article, nous verrons en détail comment utiliser la recherche binaire pour calculer les racines cubiques. Exemple d'entrée-sortie Exemple-1 :Input:64Output:4 Par exemple, la racine cubique de 64 est 4 et la sortie est 4. Exemple 2 : Entrée : 216 Sortie : 6 Par exemple, la racine cubique de 216 est 6 et la sortie est 6. Recherche binaire La recherche binaire est un algorithme utilisé pour trouver des éléments (c'est-à-dire des clés dans un tableau trié). Fonctionnement de l'algorithme binaire

Dans le programme C, utilisez un algorithme de recherche binaire pour rechercher des nombres rationnels sans utiliser l'arithmétique à virgule flottante Dans le programme C, utilisez un algorithme de recherche binaire pour rechercher des nombres rationnels sans utiliser l'arithmétique à virgule flottante Aug 27, 2023 pm 06:05 PM

Dans ce problème, on nous donne un tableau trié de nombres rationnels. Nous devons utiliser un algorithme de recherche binaire pour rechercher un élément donné de ce tableau de nombres rationnels sans utiliser d'opérations à virgule flottante. Les nombres rationnels sont des nombres exprimés sous la forme p/q, où p et q sont tous deux des nombres entiers. Par exemple, ⅔, ⅕. La recherche binaire est une technique de recherche qui permet de trouver des éléments en regardant au milieu d'un tableau. Utilisé pour rechercher des éléments dans un tableau trié de nombres rationnels à l'aide d'une recherche binaire, où les opérations en virgule flottante ne sont pas autorisées. Nous comparerons le numérateur et le dénominateur pour savoir quel élément est le plus grand ou quel élément est celui à trouver. Exemple Créons un programme pour cela, #include<stdio.h>structRational{ &am

Analyse d'algorithme PHP : Comment utiliser un algorithme de recherche binaire pour localiser rapidement des éléments dans un tableau ordonné ? Analyse d'algorithme PHP : Comment utiliser un algorithme de recherche binaire pour localiser rapidement des éléments dans un tableau ordonné ? Sep 19, 2023 pm 01:14 PM

Analyse d'algorithme PHP : Comment utiliser un algorithme de recherche binaire pour localiser rapidement des éléments dans un tableau ordonné ? Présentation : L'algorithme de recherche binaire est un algorithme de recherche efficace qui convient à la recherche d'éléments spécifiques dans un tableau ordonné. Cet article présentera en détail le principe de l'algorithme de recherche binaire et donnera des exemples de code PHP. Principe : L'algorithme de recherche binaire localise rapidement l'élément cible en réduisant de moitié la plage de recherche à plusieurs reprises. Le processus est le suivant : d'abord, limitez la plage de recherche au début et à la fin du tableau ; puis calculez l'index de l'élément du milieu et comparez-le avec l'élément cible ;

See all articles