Implementación del algoritmo de clasificación de JavaScript

Prefacio

Hablando de clasificación, definitivamente es una palabra que debe aparecer en el libro de texto de estructura de datos de todas las especialidades relacionadas con la informática. La última pregunta del examen final también está relacionada con esto. Recuerde que todavía era un estudiante de segundo año en ese momento y Todavía estaba tan ... También hay muchos tipos aprendidos en el libro de texto, generalmente tenemos lo siguiente

Inserte la descripción de la imagen aquí

Ordenamiento de burbuja

La clasificación de burbujas es un algoritmo de clasificación simple. Ha visitado repetidamente la secuencia que se va a clasificar, comparando dos elementos a la vez e intercambiándolos si están en el orden incorrecto. El trabajo de visitar la secuencia se repite hasta que no se necesitan más intercambios, lo que significa que la secuencia ha sido ordenada. El origen del nombre de este algoritmo se debe a que cuanto más pequeño sea el elemento, "flotará" lentamente hacia la parte superior de la secuencia a través del intercambio.

Inserte la descripción de la imagen aquí
Código

	const bubbleSort = arr => {
    
    
			///轮数
			for (let i = 0; i < arr.length - 1; i++) {
    
    
				//次数
				for (let j = 0; j < arr.length - 1 - i; j++) {
    
    

					//判断前一个大于后一个数时进行交换
					if (arr[j] > arr[j + 1]) {
    
    
						//借助第三方变量交换两个变量的值
						let temp = arr[j];
						arr[j] = arr[j + 1];
						arr[j + 1] = temp;
					}
				}
			}
			return arr
		}
		const arr = [32, 4, 67, 82, 21, 11];
		console.log(bubbleSort(arr));

Optimización y actualización ...

Tipo de inserción

Aunque la implementación del código de la clasificación por inserción no es tan simple y tosca como la clasificación por burbujas y la clasificación por selección, su principio debería ser el más fácil de entender, porque cualquiera que haya jugado al póquer debería poder entenderlo en segundos. Funciona construyendo una secuencia ordenada. Para datos no clasificados, escanee de atrás hacia adelante en la secuencia ordenada, busque la posición correspondiente e insértela. La clasificación por inserción generalmente se implementa mediante la clasificación en el lugar (es decir, una clasificación que solo necesita O (1) espacio adicional), por lo que en el proceso de escaneo de atrás hacia adelante, es necesario desplazar repetidamente los elementos ordenados hacia atrás., Para proporcionar espacio de inserción para los elementos más recientes.

Código

		const insertSort = arr => {
    
    
			for(let i = 0; i < arr.length; i++){
    
    
				let temp = arr[i];
				for(let j = 0; j < i; j++){
    
    
					if(temp < arr[j] && j === 0){
    
    
						arr.splice(i, 1);
						arr.unshift(temp);
						break;
					}else if(temp > arr[j] && temp < arr[j+1] && j < i - 1){
    
    
						arr.splice(i, 1);
						arr.splice(j+1, 0, temp);
						break;
					}
				}
			}
			return arr;
		}

Optimización y actualización ...

Seleccionar ordenar

Seleccione ordenar, es decir, seleccione el más pequeño cada vez, y luego cambie la posición, es decir, primero busque el elemento más pequeño (grande) en la secuencia sin clasificar, guárdelo al principio de la secuencia ordenada y luego continúe buscando el el más pequeño de los elementos restantes sin clasificar El elemento (grande) se coloca al final de la secuencia ordenada. Y así sucesivamente, hasta que todos los elementos estén ordenados.

	
		let selectionSort = arr => {
    
    
			
			var len = arr.length;
			var minIndex, temp;
			console.time('选择排序耗时');
			for (var i = 0; i < len - 1; i++) {
    
    
					minIndex = i;
					for (var j = i + 1; j < len; j++) {
    
    
							if (arr[j] < arr[minIndex]) {
    
         //寻找最小的数
									minIndex = j;                 //将最小数的索引保存
							}
					}
					temp = arr[i];
					arr[i] = arr[minIndex];
					arr[minIndex] = temp;
			}
			console.timeEnd('选择排序耗时');
			return arr;
		}

Actualizando continuamente ...

Supongo que te gusta

Origin blog.csdn.net/pz1021/article/details/105016321
Recomendado
Clasificación