arrays - bash中的冒泡排序关联数组
问题描述
我需要在不使用 bash 中的速记排序的情况下对数组中的项目进行排序 从这样的数组开始
declare -A friends=(["Bob"]=22 ["Alice"]=19 ["Jane"]=21)
我必须使用键(名称)作为排序参数按字母顺序打印数组中的项目。预期产出
Alice 19
Bob 22
Jane 21
解决方案
bash 中的冒泡排序如下所示:
arr=(10 8 20 100 12) #Numbers Array
echo "Array in original order"
echo ${arr[*]}
# Performing Bubble sort
for ((i = 0; i<5; i++))
do
for((j = i; j<5-i-1; j++))
do
if ((${arr[j]} > ${arr[$((j+1))]}))
then
# swap
temp = ${arr[$j]}
arr[$j] = ${arr[$((j+1))]}
arr[$((j+1))] = $temp
fi
done
done
echo "Array in sorted order :"
echo ${arr[*]}
推荐阅读
- scala - ScalaTest:是否可以结合 AsyncWordSpec 和 GuiceOneAppPerSuite
- i3 - 如何按特定顺序自动启动程序?
- javascript - 我不知道为什么,但我的 ajax POST 方法没有返回任何响应
- database - 从 sqlite3 INNER JOIN 一无所获
- vue.js - nuxt js路由器没有将数据道具从一个组件传递到另一个组件
- python - 发生用户定义函数引发的异常
- lua - 如果条件满足再次启动功能 [LUA]
- android - 发送给客户端的块大小会影响文件的完整性
- python - 为什么我得到 NameError: name 'self' is not defined?
- amazon-web-services - 提供在 aws 上使用 elb 配置 Route 53 故障转移的步骤,无需停机