¿Qué algoritmos o cálculos se pueden implementar en JavaScript web front-end?
1. Binario:
función binaria(elementos, valor){
var startIndex=0,
stopIndex=items.length -1,
midlleIndex=(startIndex stopIndex)gt;gt;gt;1;
while(items[middleIndex]!=valor amp;amp; startIndex
if(items[middleIndex]gt; valor){
stopIndex=middleIndex-1;
}else{
startIndex= middleIndex 1; p>
p>
}
middleIndex=(startIndex stopIndex)gt;gt;gt;1;
}
devolver artículos[ middleIndex]! ? false: true;
}
2. Generar valores de color hexadecimales:
función randomColor(){
var arrHex=["0", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c ", "d"],
strHex="#",
index;
for(var i=0; i lt; 6; i) {
index=Math.round(Math.random()*15);
strHex = arrHex[index];
}
return strHex;
}
Método para encontrar la longitud de una cadena:
función GetBytes(str){
var len= str.length,
bytes=len;
for(var i=0;i lt; len;i){
if(str. CharCodeAtgt; 255){
bytes;
}
}
bytes de retorno;
}
3 Implementación de deduplicación de matrices .js:
Array.protype.delRepeat=function(){
var newArray=new Array();
var len= this.length;
for(var i=0;i lt;len;i){
for(var j=i 1;j lt;len;j) p>
{
if(este[i]==este[j])
{
i;
}
}
Esto.>newArray.push(este[i]);
}
return newArray;
}
4. Ordenación por inserción. La llamada clasificación por inserción consiste en considerar el primer elemento de la secuencia como una subsecuencia ordenada y luego compararlo e intercambiarlo hacia atrás sin segmentación.
función insertarSort(arr){
var key;
for(var j = 1; j lt; arr.length; j){
//pedido
var i = j - 1;
key = arr[j]
while(i gt; = 0 amp ;amp; arr[i] gt;clave){
arr[i 1] = arr[i];
i --;
}
arr[i 1] = clave;
}
return arr;
}
5. Clasificar. De hecho, la idea básica es seleccionar el más pequeño o más grande de la matriz que desea ordenar, colocarlo en la posición inicial y luego seleccionar el más pequeño o más grande del resto de la matriz y colocarlo después del número de la empresa. .
selección de funciónOrdenar(datos)
{
var i, j, min, temp, count=data.length;
para (i = 0; i lt; count - 1; i) {
/* Encuentra el valor mínimo*/
min =
for ( j = i 1; j lt; contar; j )
{
si (datos[j] lt; datos[min])
{ min = j;}
}
/* Intercambiar datos[i] y datos[min] */
temp = datos[i];
datos[i] = datos[min];
datos[min] = temp;
}
devolver datos;
}
6. Clasificación Hill, también conocida como algoritmo de clasificación incremental descendente. De hecho, al final del día, también es una variación del tipo de inserción.
var len2 = parseInt(len/2);
for(; i lt; stepArrLength; i ){
if(stepArr[i] gt; len2){
continuar;
}
stepSort(stepArr[i]);
}
// Ordenar por tamaño de paso
función stepSort(step){
//console.log(step) recuento de pasos usados
var i = 0, j = 0, f, tem, clave;
var stepLen = lensstep gt 0 ?parseInt(len/paso) 1: len/paso;
for(;i lt; paso ; i){// Recorre las columnas en orden
for(j=1;/*j lt; stepLen amp;amp; */step * j i lt;len;
j ){// Recorre cada fila de cada columna por turno
tem = f = step * j i;
key = array[f];
while((tem-=step) gt;= 0){// Busca cada fila por turno
if(array[tem] gt; key){
array[tem paso] = matriz[tem];
}else{
romper;
}
}
matriz[ paso del tem ] = clave
}
}
}
}
} p>
}
Devuelve una matriz;
7. Clasificación rápida. De hecho, en el análisis final, el algoritmo de clasificación rápida es una mejora del sistema de clasificación de burbujas. Adopta la idea de recursión de partición en la teoría de algoritmos. Para decirlo sin rodeos, significa: dividir los registros que se van a clasificar en dos. partes, y la proporción de valores de una parte del registro es Si el valor de la otra parte del registro es pequeño, puede continuar ordenando las dos partes del registro implementando las dos operaciones anteriores sin recursividad para lograr la clasificación; los valores del registro.
función quickSort(arr, l, r){
if(l lt; r){
var mid=arr[parseInt((l r)/ 2)], i=l-1, j=r 1;
mientras(true){
while(arr[ i] lt; mid);
while(arr[--j]gt; mid);
if(igt;=j)break;
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
quickSort(arr, l, i- 1);
quickSort(arr, j 1, r);
}
return arr;
}
8.Método de burbujeo:
función bullSort(array){
var temp;
for(var i=0; i lt; array. longitud; i )
{
for(var j=array.length-1;j gt; i;j--){
if(matriz [j] lt; matriz[j-1])
{
temp = matriz[j];
matriz[j]=matriz[j- 1];
matriz[j-1]=temp;
}
}
}
devolver matriz;
}