大佬教程收集整理的这篇文章主要介绍了Bash : 冒泡排序,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
描述如下:
考《》一文):
return
}
<span style="color: #0000ff">for (( <span style="color: #0000ff">last = $arrlen ; <span style="color: #0000ff">last > <span style="color: #800080">1 ; <span style="color: #0000ff">last--<span style="color: #000000"> ))
<span style="color: #0000ff">do
<span style="color: #0000ff">for (( i = <span style="color: #800080">0 ; i < <span style="color: #0000ff">last - <span style="color: #800080">1 ; i++<span style="color: #000000"> ))
<span style="color: #0000ff">do<span style="color: #000000">
[[ <span style="color: #800000">"<span style="color: #800000">${myArr[$i]}<span style="color: #800000">" > <span style="color: #800000">"<span style="color: #800000">${myArr[$((i+1))]}<span style="color: #800000">" ]] && exchangeEle $i $((i+<span style="color: #800080">1<span style="color: #000000">))
<span style="color: #0000ff">done
<span style="color: #0000ff">done
》一文。
title="Bash : 冒泡排序" alt="Bash : 冒泡排序" src="https://cn.js-code.com/res/2019/02-09/09/585df28e4bfbb1c58abded0a540da5f0.png" >
n
=<span style="color: #000000">${#myArr[@]} <span style="color: #0000ff">echo <span style="color: #800000">"<span style="color: #800000">Start bubbling sort:<span style="color: #800000">"</span><span style="color: #0000ff">echo</span> <span style="color: #800000">"</span><span style="color: #800000">${myArr[*]}</span><span style="color: #800000">"</span>
<span style="color: #0000ff">done<span style="color: #000000"> # 外部循环结束。
<span style="color: #0000ff">echo <span style="color: #800000">"<span style="color: #800000">Sorted data order:<span style="color: #800000">"
<span style="color: #0000ff">echo <span style="color: #800000">"<span style="color: #800000">${myArr[*]}<span style="color: #800000">"
只不过是写法有一点点不同。为了显示排序的过程,这次输出了每轮排序后的中间结果:
title="Bash : 冒泡排序" alt="Bash : 冒泡排序" src="https://cn.js-code.com/res/2019/02-09/09/b6328d3060390c9eaa35bfa892ee5406.png" >
代码:
exchangeEle()
{
local temp</span>=${myArr[$<span style="color: #800080">1</span><span style="color: #000000">]}
# 交换元素的位置
myArr[$</span><span style="color: #800080">1</span>]=${myArr[$<span style="color: #800080">2</span><span style="color: #000000">]}
myArr[$</span><span style="color: #800080">2</span>]=<span style="color: #000000">$temp
return
}
declare
-a myArr=(<span style="color: #800080">10 <span style="color: #800080">1 <span style="color: #800080">30 <span style="color: #800080">13 <span style="color: #800080">2 <span style="color: #800080">22<span style="color: #000000">)arrlen=<span style="color: #000000">${#myArr[@]}
<span style="color: #0000ff">for (( <span style="color: #0000ff">last = $arrlen ; <span style="color: #0000ff">last > <span style="color: #800080">1 ; <span style="color: #0000ff">last--<span style="color: #000000"> ))
<span style="color: #0000ff">do
<span style="color: #0000ff">for (( i = <span style="color: #800080">0 ; i < <span style="color: #0000ff">last - <span style="color: #800080">1 ; i++<span style="color: #000000"> ))
<span style="color: #0000ff">do<span style="color: #000000">
[[ <span style="color: #800000">"<span style="color: #800000">${myArr[$i]}<span style="color: #800000">" > <span style="color: #800000">"<span style="color: #800000">${myArr[$((i+1))]}<span style="color: #800000">" ]] && exchangeEle $i $((i+<span style="color: #800080">1<span style="color: #000000">))
<span style="color: #0000ff">done
<span style="color: #0000ff">done
<span style="color: #0000ff">echo <span style="color: #800000">"<span style="color: #800000">Sorted data order as String:<span style="color: #800000">"
<span style="color: #0000ff">echo <span style="color: #800000">"<span style="color: #800000">${myArr[*]}<span style="color: #800000">"<span style="color: #000000">
<span style="color: #0000ff">for (( <span style="color: #0000ff">last = $arrlen ; <span style="color: #0000ff">last > <span style="color: #800080">1 ; <span style="color: #0000ff">last--<span style="color: #000000"> ))
<span style="color: #0000ff">do
<span style="color: #0000ff">for (( i = <span style="color: #800080">0 ; i < <span style="color: #0000ff">last - <span style="color: #800080">1 ; i++<span style="color: #000000"> ))
<span style="color: #0000ff">do<span style="color: #000000">
[[ <span style="color: #800000">"<span style="color: #800000">${myArr[$i]}<span style="color: #800000">" -gt <span style="color: #800000">"<span style="color: #800000">${myArr[$((i+1))]}<span style="color: #800000">" ]] && exchangeEle $i $((i+<span style="color: #800080">1<span style="color: #000000">))
<span style="color: #0000ff">done
<span style="color: #0000ff">done
<span style="color: #0000ff">echo <span style="color: #800000">"<span style="color: #800000">Sorted data order as number:<span style="color: #800000">"
<span style="color: #0000ff">echo <span style="color: #800000">"<span style="color: #800000">${myArr[*]}<span style="color: #800000">"<span style="color: #000000">
<span style="color: #0000ff">echo <span style="color: #800000">"<span style="color: #800000">The order of the original data in the array:<span style="color: #800000">"
<span style="color: #0000ff">echo <span style="color: #800000">"<span style="color: #800000">${myArr[*]}<span style="color: #800000">"<span style="color: #000000">
n=<span style="color: #000000">${#myArr[@]}
<span style="color: #0000ff">echo <span style="color: #800000">"<span style="color: #800000">Start bubbling sort:<span style="color: #800000">"
<span style="color: #0000ff">while [ <span style="color: #800000">"<span style="color: #800000">$n<span style="color: #800000">" -gt <span style="color: #800080">1 ] # 执行 n-<span style="color: #800080">1<span style="color: #000000"> 轮外部循环。
<span style="color: #0000ff">do<span style="color: #000000">
index=<span style="color: #800080">0<span style="color: #000000"> # 内部循环时的数组元素索引,在每轮循环开始之前需要重置。
<span style="color: #0000ff">while [ <span style="color: #800000">"<span style="color: #800000">$index<span style="color: #800000">" -lt $(<span style="color: #0000ff">expr $n - <span style="color: #800080">1<span style="color: #000000">) ] # 开始内部循环。
<span style="color: #0000ff">do
<span style="color: #0000ff">if [[ ${myArr[$index]} > ${myArr[$(<span style="color: #0000ff">expr $index + <span style="color: #800080">1<span style="color: #000000">)]} ]]
<span style="color: #0000ff">then<span style="color: #000000">
exchangeEle $index $(<span style="color: #0000ff">expr $index + <span style="color: #800080">1<span style="color: #000000">) # 交换数组元素位置。
<span style="color: #0000ff">fi<span style="color: #000000">
let <span style="color: #800000">"<span style="color: #800000">index += 1<span style="color: #800000">"
<span style="color: #0000ff">done<span style="color: #000000"> # 内部循环结束。
let <span style="color: #800000">"<span style="color: #800000">n -= 1<span style="color: #800000">" # 外部循环计数减 <span style="color: #800080">1<span style="color: #000000">。
</span><span style="color: #0000ff">echo</span> <span style="color: #800000">"</span><span style="color: #800000">${myArr[*]}</span><span style="color: #800000">"</span>
<span style="color: #0000ff">done<span style="color: #000000"> # 外部循环结束。
<span style="color: #0000ff">echo <span style="color: #800000">"<span style="color: #800000">Sorted data order:<span style="color: #800000">"
<span style="color: #0000ff">echo <span style="color: #800000">"<span style="color: #800000">${myArr[*]}<span style="color: #800000">"
考:
以上是大佬教程为你收集整理的Bash : 冒泡排序全部内容,希望文章能够帮你解决Bash : 冒泡排序所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。