牛耕田学习之 shell冒泡排序

#!/bin/bash
##############################################################
# File Name: /server/scripts/maopaopao.sh
# Version: V1.0
# Author:牛耕田
# Created Time : 2017-09-20 19:44:10
# Description:冒泡排序
# 阅读说明:
# 1、read -a shuzu -a表示定义接下来的输入是一个数组 shuzu是设置的数组名
# 2、${#..[@]} 表示数组的元素个数
# 3、${..[@]} 表示数组的全部元素
# 4、..[a] 表示数组的第a个元素
##############################################################
echo "请输入若干个数字:"
read -a shuzu #获得数列
for ((a=0;a<${#shuzu[@]};a++))              #循环条件,a=0;a小于数列元素个数,a++
do #干
for ((b=0;b<${#shuzu[@]}-1;b++))           #
do #干
if [[ ${shuzu[b]} -gt ${shuzu[b+1]} ]];then #如果 数列的第b个元素 大于数列的第b+1个元素 是然后
c=${shuzu[b]}                                          #将数列的第b个元素的的值赋给c
shuzu[b]=${shuzu[b+1]}                          #将数列第b+1个元素的值赋给数列的第b个元素
shuzu[b+1]=$c                                        #将c的值赋给数列的第b+1个元素 这三步就是将数字互换位置
fi                                                             #果如
done
done                                                       #干完了一个循环,回到for继续
echo ${shuzu[@]}                                   #显示 数列里面所有的元素

时间: 2024-10-27 04:50:22

牛耕田学习之 shell冒泡排序的相关文章

牛耕田学习之 管理磁盘分区

首先呢,在耕田学习机上添加一块虚拟的硬盘 然后就达到这个效果 出现新硬盘  硬盘2 好了 我们去Xshell 连接耕田学习机 在root用户下用fdisk -l 看看什么情况 好   我们看到了 sda 已经分好了 sda1 是引导区 我们添加的sdb 就是硬盘2  还是没有任何分区的 我们来分它 目标任务  在sdb上分2个 5G的  剩下的我们把它建一个扩展分区 然后再在扩展分区建两逻辑分区 好 皮皮虾 我们走 fdisk /dev/sdb 中间那个巨大的报错: 警告:DOS兼容模式已经过时

linux学习之shell练习

linux学习之shell练习 1.描述shell程序的运行原理(可附带必要的图形说明): 2.总结shell编程中所涉及到的所有知识点(如:变量.语法.命令状态等等等,要带图的哟): 总结文章:http://pizimsn.blog.51cto.com/7002551/1697671 3.总结课程所讲的所有循环语句.条件判断的使用方法及其相关示例:(if (jpg|png is not exist):echo "You say a XX") 总结文章:http://pizimsn.b

学习理解shell的好办法--编写自己的shell 之二

shell脚本的最简单形式就是一串命令的罗列,shell充当解释器,一条条挨个执行,直到最后一个或遇到退出命令.但这只能做很简单的事情,只是省区了每次都要敲一边命令的时间,要想完成更负责的功能,还要加上这些东西: 1.控制 前面的条件满足了,然后干什么:不满足,干什么. 2.变量 c=a+b, 用一种形式代表另一种形式,就是变量.因为形式不同了,就能用一种不变的表示另一种变化的.比如"编程语言"就可以当一个变量,可以赋值为"C语言","Perl语言&quo

八大排序算法学习笔记:冒泡排序

冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法. 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端. 算法原理: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有

学习理解shell的好办法--编写自己的shell 之一

本文参考自<Unix/Linux编程实践教程>, 这是一本讲解unix系统编程的书,注重实践,理解难度不大,推荐大家阅读,敲完本书后,对于理解unix系统如何运作会有更深的视角,回过头再学习别的 Linux相关的东西时,感受非常不一样,这是一本可以提高"内功"的书.自己加了些很菜的解释,以便其他小白理解,大牛直接飘过吧,错误之处希望指正. shell是一个管理进程和运行程序的程序,用来人和机器交互 常用的shell如sh,bash,zsh,csh,ksh等都有三个主要功能:

马哥教育视频学习笔记-shell脚本完成磁盘分区格式化

马哥教育视频学习笔记-shell脚本完成磁盘分区格式化-http://edu.51cto.com/lesson/id-28201.html 以下是脚本内容,内容比较简单,不做详解 在Linux上准备一块空闲的磁盘即可,如何分区可以在脚本内改下 #!/bin/bash # echo "Initial a disk..." echo -e "\033[31mWarning: \033[0m " #开始的说明信息,其中Warning以红色字体显示 fdisk -l 2&g

复旦微电子牛人学习模电经历

复旦微电子牛人学习模电经历 2011-03-09 18:41:40 分类: IT职场 注:文章内容来自网络,网址不详 复旦攻读微电子专业模拟芯片设计方向研究生开始到现在五年工作经验,已经整整八年了,其间聆听过很多国内外专家的指点.最近,应朋友之邀,写一点心得体会和大家共享. 我记得本科刚毕业时,由于本人打算研究传感器的,后来阴差阳错进了复旦逸夫楼专用集成电路与系统国家重点实验室做研究生.现在想来这个实验室名字大有深意,只是当时惘然.电路和系统,看上去是两个概念,两个层次. 我同学有读电子学与信息

Shell学习之Shell特性(一)

Shell学习之Shell特性 目录 命令和文件自动补齐功能 命令历史记忆功能 history.上下键.!number.!string.!$.!! 别名功能 alias.unalias cp.~username/.bashrc.\cp -rf /etc/hosts 快捷键 ^R ^D ^A ^E ^L ^U ^K ^S ^Q 前后台作业控制 输入输出重定向 输入与输出 管道 | tee 命令排序 命令和文件自动补齐功能 这个不说了,我们在输入命令的时候,按tab键补全. 命令历史记忆功能  hi

好程序员Java学习路线分享冒泡排序及优化

? 好程序员Java学习路线分享冒泡排序及优化,冒泡排序是一定典型的交换排序,如排序规则是升序,有如下数列: ? A[0] A[1] A[2] A[3] ...... A[n] ? 将A[0]和A[1]比较,如果A[0]>A[1] ,则交换两个元素的位置,否则不变, 再继续比较A[1]和A[2],直到A[n-1]和A[n].即比较相邻的两个元素,如果前一个大,就交换(否则不交换),再继续比较后面的元素,每一轮比较之后,最大的元素会移动到最后(完成一轮冒泡):再开始第二轮冒泡,本次会选出第二大的元