Maison > interface Web > js tutoriel > le corps du texte

Explication détaillée de la déduplication de tableaux javascript et exemples d'algorithmes de tri rapide

伊谢尔伦
Libérer: 2017-07-24 09:23:21
original
1980 Les gens l'ont consulté

Déduplication de tableau

Principe : définissez un objet obj, puis utilisez l'élément de tableau comme nom d'attribut d'obj, et utilisez si le nom d'attribut est répété pour déterminer la duplication


var unique = function(arr){
  let obj = {};
  let newArr = [];
  arr.forEach(function(x){
    if(!obj[x]){ //如果对象中没有该元素对应的属性
      obj[x] = true;
      newArr.push(x);
    }
  });
  return newArr;
}
Copier après la connexion

Utilisez l'algorithme de tri rapide pour trier le tableau

Cela inclut deux effets, l'un consiste à utiliser les caractéristiques de tri rapide pour réaliser la déduplication Tri rapide, l'autre est un tri rapide sans suppression de poids.

Principe : obtenez le tableau cible, sélectionnez un élément comme drapeau, parcourez les éléments restants, placez les éléments plus grands que le drapeau à droite et plus petits que le drapeau à gauche.

Remarque particulière : il existe des éléments égaux au bit de drapeau. Si vous stockez des éléments égaux, la déduplication sera réalisée. Si vous les stockez, ils ne seront pas dédupliqués.


var quickSort = function(arr){
  if(arr.length <= 1){
    return arr;
  }
  //定义一个左数组,定义一个右数组
  let leftArr = [];
  let rightArr = [];
  //选定一个参照值
  let tag = arr[0];
  /*
   * 使用如下方式判断,会把重复元素去掉,就实现了快排的同时去重
   */
  for(let i = 0; i < arr.length; i++){
    if(arr[i] < tag){ //将比tag小的元素放在左数组中
      leftArr.push(arr[i]);
    }
    if(arr[i] > tag){ //将比tag大的元素放在右数组中
      rightArr.push(arr[i]);
    }
  }
  /*
   * 使用如下方式就是使用快排进行排序,不去重
   */
  for(let i = 1; i < arr.length; i++){
    if(arr[i] < tag){ //将比tag小的元素放在左数组中
      leftArr.push(arr[i]);
    }else{ //将比tag大的元素放在右数组中
      rightArr.push(arr[i]);
    }
  }
  //递归调用
  return [].concat(quickSort(leftArr),[tag],quickSort(rightArr));
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!