shell脚本编程之冒泡排序脚本实现(解释非常详细,涉及正则表达式)
发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,shell脚本编程之冒泡排序脚本实现 冒泡排序作为编程中最为基础的算法,对于计算机编程初学者而言是非常值得多研究和多多尝试编写的。对于编程而言,优劣的不是语言,而是实现功能的逻辑思维和突如其来的灵感
千家信息网最后更新 2025年02月16日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安全错误
数据库的锁怎样保障安全
免费vps云服务器
电脑我的世界服务器无法连接
软件开发方法及软件开发思维
软件开发李良召
青海网络安全监测中心
群体化软件开发方法
工行软件开发2018校招
中国地调局调整系数数据库
战地5各个服务器
软件开发版本不同阶段
增加网络安全法发布单位
税务网络安全知识测试
手机网站数据库设计
白皮书网络安全角色列表失败
最新免费服务器
服务器管理员加微信
西青区电子网络技术售后服务
php和哪个数据库表
网络安全在IT业
软件开发执行情况
安靖 网络安全
数据库最小年龄
企业数字化管理系统 服务器
明皮皮计算机软件开发有限公司
月度网络安全工作报告
软件开发喷泉模型图
中软国际数据库语言
ios手机软件开发多少钱
用一个界面调取数据库信息
企业网络安全等级保护制度范本