shell 程式設計例項練習(二)

2022-07-03 17:54:10 字數 2508 閱讀 7934

1.氣泡排序:

#for((i=0;i<10;i++))

for i in #兩種方法都可以

do((a[i]=$random % 1000

)) #產生隨機數

echo -n "$ "

done

function

bubble()

for((i=0;i))

dofor((j=i;j))

doif [ $ -ge $ ]

then

tmp=$

((a[i]=a[j]))

((a[j]=tmp))

fidone

done

}bubble

echo

echo

"after bubble:

"for((i=0;i<10;i++))

doecho -n "$ "

done

執行結果:

2.求陣列的最大子串行和:

#a=(-2

11 -4

13 -5 -2

)function

maxsum() #陣列a是在後面定義 但是maxsum裡面已經可用,可見a是全域性的

for((i=1;i))

do((currsum=currsum+a[i]))

#echo

"a[i]: $"#

echo

"f: $currsum

"if [ $currsum -gt $msum ]

then

#echo

"s: $currsum

"((msum=currsum))

elif [ $currsum -lt "0"

]

then

((currsum=0

))

fidone

return $msum

}a=(-2

11 -4

13 -5 -2

)#maxsum "$

"maxsum

echo $?

執行結果:

3. 二分查詢:

binarysearch()

a=$#

echo

"len an $"#

echo

"a $"#

echo

an

for i in

$a

doar[i]=$i

#echo

$i

done

#echo

"len $ar

"low=1

high=$

(( times=0))

while (( low <=high ))

do(( ++times ))

(( mid=(low+high)/2

)) #

echo -n "

mid=

"$mid

#echo -n "

ar[mid]=

"$

if (( v > ar

[mid] ))

then

(( low = mid + 1

))

elif (( v < ar

[mid] ))

then

(( high = mid - 1

))

else

#echo -e "

/ntimes=

"$times

return $mid

fidone

#echo -e "

/ntimes=

"$times

echo

"can not find

"return -1}

for ((i=1;i<=100;++i)) do

(( array[i] =i ))

done

binarysearch

2echo -e "

$?\ttimes

"binarysearch

8echo -e "

$?\ttimes

"binarysearch

101echo -e "

$?\ttimes

"exit

0

執行結果:

不知道為什麼不可以 return -1 ???

Shell程式設計例項

一 簡介 從程式設計師的角度來看,shell本身是一種用c語言編寫的程式,從使用者的角度來看,shell是使用者與linux作業系統溝通的橋梁。使用者既可以輸入命令執行,又可以利用 shell指令碼程式設計,完成更加複雜的操作。在linux gui日益完善的今天,在系統管理等領域,shell程式設計...

shell程式設計例項

1.在 home資料夾中建立一百個資料夾。資料夾名稱依次為a1 a100.3.寫乙個程式,能夠將 et passwd的第一列取出,並且每一列都以一行字串 the 1 account is root 來顯示 4.編寫乙個程式,他的作用是先檢視一下 root test logical這個名稱是否存在。若...

shell程式設計小例項

linux就該這麼學 1,if else bin bash read p enter your score 0 100 grade if grade ge 85 grade le 100 then echo grade is excellent elif grade ge 70 grade le 8...