通過對資料迴圈排序,得出數值大小,進行排序。
#!
/bin/bash
# 氣泡排序
score=(10
511007060)
for(
(i=1
;i<$
;i++))
dofor
((j=
0;j<$
-$i;j++))
doif
[ $-gt $
] then temp=$ 中間變數
score[j]
=$ score[$(
($j+1)
)]=$temp
fidone
done
echo $
此處[$
(($j+1)
)]可以替換為[j+
1]
#!
/bin/bash
# 鍵盤輸入氣泡排序
k=0 陣列第一位元素
while
true 一直繼續,迴圈
do read -p "是否需要輸入數值?"
do 變數名
if[ $do
=="no"
] 只要不輸入no就一直繼續
then break 退出迴圈
firead -p "請輸入第$(($k+1))個元素" key
score[$k]
=$key
let k++
done
for(
(i=1
;i<$
;i++))
dofor
((j=
0;j<$
-$i;j++))
doif
[ $-gt $
] then temp=$
score[j]
=$ score[j+1]
=$temp
fidone
done
echo $
Shell氣泡排序
類似氣泡上湧的動作,會將資料在陣列中從小到大或者從大到小不斷地向前移動。由雙層迴圈實現,其中外部迴圈用於控制排序輪數,一般為要排序的陣列長度減1次,因為最後一次迴圈只剩下乙個陣列元素,不需要對比的,同時陣列已經完成排序了,而內部迴圈主要用於對比陣列中每個相鄰元素的大小,以確定是否交換位置,對比和交換...
shell編寫氣泡排序
從鍵盤賦值 bin bash 氣泡排序 number 66 3215100 701608 for i 1 i i dofor j 0 j i j doif lt then temp number j number j 1 temp fidone done echo bin bash 氣泡排序 sco...
實驗 shell 氣泡排序
演算法原理 氣泡排序的原理 以遞增序為例 是每次從頭開始依次比較相鄰的兩個元素,如果後面乙個元素比前乙個要大,說明順序不對,則將它們交換,本次迴圈完畢之後再次從頭開始掃瞄,直到某次掃瞄中沒有元素交換,說明每個元素都不比它後面的元素大,至此排序完成。由於氣泡排序簡潔的特點,它通常被用來對於計算機程式設...