Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Qué algoritmos o cálculos se pueden implementar en JavaScript web front-end?

¿Qué algoritmos o cálculos se pueden implementar en JavaScript web front-end?

En el desarrollo web, JavaScript es importante, al igual que los algoritmos. La siguiente es una compilación de algunos algoritmos comúnmente utilizados implementados en JavaScript, incluida la bisección, la longitud de la cadena, la deduplicación de matrices, la clasificación por inserción, la clasificación por selección, la clasificación Hill, la clasificación rápida, el método de burbuja, etc. Es sólo para practicar, la eficiencia y la belleza no están garantizadas y puede haber errores. Mejórelo cuando tenga tiempo.

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>

}

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)

{

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

}

}

}

}

}

}

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;

}