shell ---------- algoritmo de burbujeo

Ordenamiento de burbuja

De manera similar al proceso de aumento de burbujas, los datos se pueden mover hacia arriba y hacia abajo desde la matriz para lograr una clasificación de mayor a menor o de menor a mayor.

Idea
Esta clasificación es principalmente para comparar dos números adyacentes y moverlos hacia arriba y hacia abajo según sea necesario. Si el requisito está en orden ascendente, el primer número se comparará con el segundo número. El primer número es mayor. Se moverá hacia abajo para comparar con el tercer número, y luego se comparará de manera análoga con los siguientes valores para determinar si es necesario cambiar la posición; el orden descendente es el opuesto.

Diagrama del proceso de operación:
Inserte la descripción de la imagen aquí
código de implementación:

#!/bin/bash
f=`cat /root/arr.txt`    					##把arr.txt文件里的数值赋给f
array=($f)
a=${#array[*]}
for ((i=1; i<$a; i++ ))					###比较轮数为数组长度减1
do
	for ((j=0; j<$a-i; j++))
        do
                if [ ${array[$j]} -gt ${array[$[$j+1]]} ];then  		###第一个数比第二个数大就进行互换
                   temp=${array[$j]}					##把第一个数赋值给temp(临时变量)
                   array[$j]=${array[$[$j+1]]}			###把第二个数赋值给第一个数
                   array[$[$j+1]]=$temp				###把temp(临时变量)赋值给第二个数
        fi
        done
done
echo ${array[*]}

Notas:

${#array[*]}					##获取当前数组位数
${array[$j]}					##第一个元素
${array[$[$j+1]]}				##第二个元素
temp							##临时变量(第1个元素的原值)

Supongo que te gusta

Origin blog.csdn.net/weixin_48190875/article/details/108123946
Recomendado
Clasificación