博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell脚本实现冒泡排序(优化)
阅读量:5919 次
发布时间:2019-06-19

本文共 982 字,大约阅读时间需要 3 分钟。

hot3.png

#!/bin/sh

#bubbling arithmetic
function bubbling(){
 len=${#data[*]}
 ((len=len-1))
 pos=0
 for ((i=0;i<${#data[*]};i++))
 do
   flag="0"  #using flag to end the foreach
#   echo "${i} ${len}"
   for ((j=0;j<${len};j++))
   do
#    echo "for to ij position ${flag} ${len}"
#    echo "output data values ${data[$j]} ${data[$[j+1]]}"
    if [ ${data[j]} -gt ${data[j+1]} ]
    then
#     echo "for to ${j} position ${flag} $[len-1]"
#      data[0]=${data[$[j]]}
     tmp=${data[j]}  #swap array data
     data[$j]=${data[j+1]}
     data[$[j+1]]=${tmp}
     pos=$j
     flag="1"
    fi
#    echo "sort data are:${data[*]}"  
  done
   len=${pos}
#   echo "len and pos values are ${len} ${pos}"
   if [ ${flag} -eq "0"  ]
   then
     break
   fi
 done
 echo ${data[*]}
 #return 1
}
data=(1 5 6 9 2 6) #array data
bubbling ${data}  #invoking method and by value
echo "${data[*]}"    #return values

注:“$”符号表示引用变量,其中${data[$[j+1]]}和${data[${j+1}]}是不一样的,${data[$[j+1]]}表示先让j+1作运算并获取下标值,而${data[${j+1}]}仅表示获取j的下标值,关于+1它会自动忽视掉,若有更优化的算法,可以一块分享,探讨

转载于:https://my.oschina.net/u/3378039/blog/1604494

你可能感兴趣的文章
ARP报文详解
查看>>
H3C 7503、5500、5120交换机配置端口汇聚
查看>>
项目成本管理
查看>>
linux hwclock命令参数及用法详解--linux显示/设置硬件时钟命令
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
github 重要框架
查看>>
读框架笔记(一)
查看>>
Lync 小技巧-55-Lync 客户端正常显示手机号码
查看>>
ubuntu 解决更新时出现unable to locate package
查看>>
修改tomcat 8080 端口
查看>>
Android:UI控件DrawerLayout、Fragment、SlidingLayout、侧滑菜单
查看>>
用户及权限
查看>>
IIS调用COM组件的权限问题
查看>>
Java程序员从笨鸟到菜鸟之(八十八)跟我学jquery(四)JQuery框架操作元素的属性与样式...
查看>>
重温Java持久化(二)实战
查看>>
linux 操作记要
查看>>
mongodb mongod's arguments
查看>>
mysql group_concat的长度问题
查看>>
面对SOPA神马的,我们也许神马也做不了,但也许我们还是能做点神马?
查看>>