js varios de los algoritmos de clasificación más comunes

algoritmo de clasificación js:

Primero, personalice una matriz que contiene varios números para pasar parámetros para llamadas posteriores a varias funciones de clasificación

//自定义三个数字5 10 20 进行降幂排序
var a=[5,10,20,50,23];

1.ordenar () ordenar

Solo se pueden ordenar los caracteres. Si desea ordenar los números, debe usar la "función de comparación (aquí está sortby (), sin nombre especificado, asígnele el nombre)".
Ordenar de pequeño a grande a ab, de grande a pequeño a ba

function sortby(a,b){
    
    
	return b-a;
}		
document.write(a.sort(sortby));

2. Elija un tipo

Cada ciclo encuentra el elemento más grande y luego lo intercambia con el último ordenado antes.

//降序
function selectSort(a){
    
    
	var min=null
	for(var i=0;i<a.length-1;i++){
    
    
		min=i;
		for(var j=i+1;j<a.length;j++){
    
    
			if(a[j]>a[min]){
    
    
				min=j;
			}
			if(min!=i){
    
    
				var c=a[min];
				a[min]=a[j];
				a[j]=c;
			}
		}
	}
	return a;
}
document.write(selectSort(a))

3. Clasificación de burbujas

Compare dos elementos adyacentes, coloque el más pequeño detrás

function bubbleSort(a){
    
    
	for(var i=0;i<a.length-1;i++){
    
    
		for(var j=0;j<a.length-i-1;j++){
    
    
			if(a[j]<a[j+1]){
    
    
				var c=a[j];
				a[j]=a[j+1];
				a[j+1]=c;
			}
		}
	}
	return a;
}	
document.write(bubbleSort(a));

4. Orden de inserción

Comience desde el número con el subíndice 1 en la matriz, compare con el elemento anterior y coloque el más pequeño en la parte posterior

function insertSort(a) {
    
    
    for (var i = 1; i <a.length; i++) {
    
    
       // 待插元素
       var item = a[i];
       //排序后的末尾元素
       var j = i - 1;
       // 从排序好的末尾元素开始遍历
       // 如果大于待插元素就把当前元素往后挪
       while (j >= 0 && a[j] > item) {
    
    
           arr[j + 1] = a[j];
           j--;
       }
       // 插入待插元素
       a[j + 1] = item;
   }
   return arr;
}
document.write(insertSort(a));

5. Clasificación rápida

function quickSort(a){
    
    
	if(a.length<=1){
    
    
		return arr
	}
	var midindex=Math.floor(arr.length/2)
	var miditem=a.splice(midindex,1)[0]
	var left=[]
	var right=[]
	for(var i=0;i<a.length;i++){
    
    
		if(miditem>a[i]){
    
    
			left.push(a[i])
		}else{
    
    
			right.push(a[i])
		}
	}
	return quickSort(left).concat(miditem,quickSort(right))
}

document.write(quickSort(a));

Supongo que te gusta

Origin blog.csdn.net/isfor_you/article/details/109514314
Recomendado
Clasificación