shell脚本编程之冒泡排序脚本实现(解释非常详细,涉及正则表达式)
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,shell脚本编程之冒泡排序脚本实现 冒泡排序作为编程中最为基础的算法,对于计算机编程初学者而言是非常值得多研究和多多尝试编写的。对于编程而言,优劣的不是语言,而是实现功能的逻辑思维和突如其来的灵感
千家信息网最后更新 2025年12月02日shell脚本编程之冒泡排序脚本实现(解释非常详细,涉及正则表达式)
shell脚本编程之冒泡排序脚本实现
冒泡排序作为编程中最为基础的算法,对于计算机编程初学者而言是非常值得多研究和多多尝试编写的。对于编程而言,优劣的不是语言,而是实现功能的逻辑思维和突如其来的灵感。
下面将给出使用shell实现冒泡排序的脚本,其中涉及的正则表达式需要细细理解。具体解释在下面的注释中有备注。
#!/bin/bash#学习shell脚本过程中实现循环输入数生成数组,然后使用冒泡排序法进行从小到大排序#Author:lokott#Version: 3.1#冒泡排序法的核心思想为:引入变量,两两比较,符合不动,反之互换#脚本如下:#等待用户输入read -p "please input num of this array:" n#下面是test语句判断输入的是否为数字,但是错误输出提示不友好,所以换为if#[[ $n =~ ^[0-9]+$ ]]&&echo "welcome"||exit 1if [[ $n =~ ^[0-9]+$ ]]then echo "welcome"else echo "sorry you input no a number!" exit 1fi#循环n次,等待用户输入数字,打印显示出数组内容for i in `seq $n`do read -p "please input your num:" num if [[ $num =~ ^[0-9]+$ ]];then : else echo "sorry you input no a number!" exit 1 fi let i=i-1array[$i]=$numdoneecho "原顺序的数组:"echo ${array[*]}#冒泡排序算法,核心在于下面的if语句,其实并不难理解,如果小时候玩过汉诺塔就非常好理解#举一个简单的例子:如果你想将两杯不同果汁互换,就需要一个空杯子来作为中间媒介,这就类似于下面的temp变量#该脚本实现的是从小到大排序,因此if判断的时候使用的是-gt;而且该脚本需要双重循环#双重循环口诀:内层循环执行一遍,外层循环执行一次;结合下面的j和k,就是j=0开始执行,而一直等到k为n时才到j=2,以此类推。#内层循环控制单次比较:即先比较第一个数与后面的所有的数进行比较,遇到比之小的与之替换,继续执行if(这里参与比较的变量就发生改变了)for ((j=0;j<$n;j++))do for((k=j+1;k<$n;k++)) do if [[ ${array[$j]} -gt ${array[$k]} ]] then temp=${array[$j]} array[$j]=${array[$k]} array[$k]=$temp fi donedoneecho "进行排序之后的数组:"echo ${array[*]}# 下面是执行冒泡排序脚本的结果:# [root@localhost ~]# ./test.sh # please input num of this array:5# welcome# please input your num:1# please input your num:2# please input your num:5# please input your num:6# please input your num:4# 原顺序的数组:# 1 2 5 6 4# 进行排序之后的数组:# 1 2 4 5 6
排序
脚本
循环
数组
编程
面的
输入
变量
从小到大
从小
内层
数字
核心
用户
算法
语句
顺序
正则
脚本编程
表达式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
怎么设计数据库框架
新型无线网络安全概念股
vs2012 数据库
千叶互联网科技短视频变现
饥荒服务器名称改变
mysql数据库难装
抖加投放服务器忙
微软是用什么软件开发的
服务器中的视频怎么获得
win服务器备份win7数据
无论是网络安全保密技术
乐斗服务器
黑龙江推广软件开发创新服务
数据库安全管理操作
史书下载软件开发
加强纪检监察网络安全教育
怎么下载网络安全证书
网络安全创业成功案例
互联网金融科技的股票有哪些
宝山区智能软件开发售后服务
双色球数据库选号排位表
描述面向对象软件开发过程
路由器是不是网络服务器
军用软件开发文档如何编写
网络技术开发有前途吗
枣庄ios软件开发公司
为什么要用服务器集群
廊坊微型企业财务软件网络技术
建立一个数据库和表的步骤
计算机网络技术读大专有用吗