shell脚本之数组的升降序排序,插入排序

一、数组的升序排序

  • 用户随意输一个数组,不局限数组长度,输出结果将数组升序排序
#脚本内容:
#!/bin/bash 
read -p "请输入你的数组长度:" num1      #先把用户输入的各个元素放入数组中
for i in `seq $num1`
do
    read -p "请输入$i个数:" num2
    array[$i-1]=$num2
done
echo ${array[*]} 
#--------------------下面排序-------------------------------------------
for((m=0;m<${#array[*]}-1;m++))
do
    for((n=0;n<${#array[*]}-1;n++))
        do
           if [[ ${array[n]} -gt ${array[n+1]} ]]
            then
                   num=${array[n]}          #num 作为一个中间存储量
                   array[n]=${array[n+1]}
                   array[n+1]=$num
            fi
        done
done
echo ${array[*]}

在这里插入图片描述

二、数组的降序排序

  • 用户随意输一个数组,不局限数组长度,输出结果将数组降序排序
#脚本内容:
#!/bin/bash 
read -p "请输入你的数组长度:" num1
for i in `seq $num1`
do
    read -p "请输入$i个数:" num2
    array[$i-1]=$num2
done
echo ${array[*]} 
for((m=0;m<${#array[*]}-1;m++))
do
    for((n=0;n<${#array[*]}-1;n++))
        do
           if [[ ${array[n]} -lt ${array[n+1]} ]]
            then
                   num=${array[n]}
                   array[n]=${array[n+1]}
                   array[n+1]=$num
            fi
        done
done
echo ${array[*]}

在这里插入图片描述

三、数组的插入排序

  • 用户想在一个数组中的某个元素后插入一个新的元素,最后进行排序
#!/bin/bash 
read -p "请输入一个数组:"
read -a array
echo "数组:${array[*]}"
len=${#array[*]}
read -p "你想在第几个数后插入,插入的数为:" m shu
ary=(${array[*]:0:$m} $shu ${array[*]:$m:$[$len-$m]})
echo "插入后的数组:${ary[*]}"
for((i=0;i<${#ary[*]}-1;i++))
do
    for((j=0;j<${#ary[*]}-1;j++))
        do
           if [[ ${ary[j]} -gt ${ary[j+1]} ]]
           then
                 num=${ary[j]}
                         ary[j]=${ary[j+1]}
                         ary[j+1]=$num
        fi
        done
done
echo "升序排序:${ary[*]}"

在这里插入图片描述

发布了69 篇原创文章 · 获赞 32 · 访问量 3451

猜你喜欢

转载自blog.csdn.net/qq_28361541/article/details/103408975
今日推荐