bash 函数思想实现数组冒泡排序
1 #!/bin/env sh
2
3 read -p 'input length of array:' var
4 [[ ! $var =~ [[:digit:]] ]] && echo 'input wrong' && exit 5
5
6 declare -a pp
7
8 for z in `seq 0 1 $[var-1]`;do
9 pp[$z]=$RANDOM
10 done
11
12 echo ${pp[@]}
13
14 function desc(){
15 local pp
16 declare -a pp
17 pp=($@)
18 local num=${#pp[*]}
19 echo $num
20 for ((i=0;i<num;i++));do
21 for ((j=i+1;j<num;j++));do
22 if [ ${pp[i]} -lt ${pp[j]} ];then
23 nn=${pp[i]}
24 pp[i]=${pp[j]}
25 pp[j]=$nn
26 fi
27 done
28 done
29 echo "desc sort:"
30 echo ${pp[*]}
31 }
32
33 desc ${pp[*]}
34
35 function asc(){
36 local pp
37 declare -a pp
38 pp=($*)
39 local num=${#pp[*]}
40 echo $num
41 for ((i=0;i<num;i++));do
42 for ((j=i+1;j<num;j++));do
43 if [ ${pp[i]} -gt ${pp[j]} ];then
44 nn=${pp[i]}
45 pp[i]=${pp[j]}
46 pp[j]=$nn
47 fi
48 done
49 done
50
51 echo "asc scort:"
52 echo ${pp[@]}
53 }
54
55 asc ${pp[*]}
bash 中不能直接传递数组,只能先拆包在重新生成数组
开始先利用[[ ]]做正则条件判断,非数字退出
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律