我是靠谱客的博主 细心唇彩,最近开发中收集的这篇文章主要介绍Shell之冒泡排序法(通俗易懂呦!),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

    • 1:冒泡排序
    • 2:输入任意元素加入数组,进行冒泡排序

  今天给大家介绍一个shell当中的冒泡排序,下面是一个简单的概念图,帮助大家理解
在这里插入图片描述
简单来说就是从左往右,两两比较,将数值最大的赋给右边,采用双层循环,外层为轮,内层为次数。定义轮数为“i" ,次数为“j-i ”
score=(75 89 57 97 67) 就是前面两个进行对比大小 值小放前面
第一轮
75 89 57 97 67 轮数定义为“i”
75 89 57 97 67 第一次 数组长度-1 第一轮比较后,最大以为值是97
75 57 89 97 67 第二次
75 57 89 97 67 第三次
75 57 89 67 97 第四次
------第二轮--------------------------------------------
75 57 89 67 | 97 97 数组长度-2 第一轮比较后,第二大是89
57 75 89 67 | 97 第一次
57 75 89 67 | 97 第二次
57 75 67 89 | 97 第三次
------第三轮-------------------------------------------
57 75 67 | 89 97
57 75 67 | 89 97 第一次 数组长度-3 第一轮比较后,第三大是75
57 67 75 | 89 97 第二次
----第四轮-----------------------------------------------
57 67 | 75 89 97
57 67 | 75 89 97 第一次 数组长度-4

1:冒泡排序

#!/bin/bash
score=(55 23 45 32)
for ((i=1;i<${#score[*]};i++))       #${#score[*]}为数组的元素的个数
do
 for ((j=0;j<${#score[*]}-$i;j++))   #${#score[*]}为数组的元素的个数
 do
     if [ ${score[$j]} -gt ${score[((j+1))]} ] 
     then
      temp=${score[j+1]}
         score[((j+1))]=${score[$j]}
         score[$j]=$temp
fi
done
done
echo ${score[*]}
[root@server1 ~]# sh maopao.sh
23 32 45 55

2:输入任意元素加入数组,进行冒泡排序

#!/bin/bash
k=0
while true
do
read -p "是否需要输入数值[yes/no]:" do
  if [ $do == "no" ]    #输入no,即可退出,输入其他继续循环
  then break
  fi
read -p "请输入第$(($k+1))个元素:" key
score[$k]=$key
let k++
done
for ((i=1;i<${#score[*]};i++))
do
 for ((j=0;j<${#score[*]}-$i;j++))
 do
   if [ ${score[$j]} -gt ${score[((j+1))]} ]
     then
      temp=${score[j+1]}
         score[((j+1))]=${score[$j]}
         score[$j]=$temp
      fi
   done
done
echo ${score[*]}
[root@server1 ~]# sh maopao.sh
是否需要输入数值[yes/no]:yes
请输入第1个元素:44
是否需要输入数值[yes/no]:yes
请输入第2个元素:33
是否需要输入数值[yes/no]:yes
请输入第3个元素:55
是否需要输入数值[yes/no]:yse
请输入第4个元素:12   
是否需要输入数值[yes/no]:no
12 33 44 55

小伙伴们有任何问题可以私信我呦!!

最后

以上就是细心唇彩为你收集整理的Shell之冒泡排序法(通俗易懂呦!)的全部内容,希望文章能够帮你解决Shell之冒泡排序法(通俗易懂呦!)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部