shell實現簡單的數組排序

c++代碼

int nums[8]={1,2,1,3,4,2,5,6};
int length=8;
for(int i=0;i<length;i++){
    for(int j=i+1;j<length;j++){
        if(nums[j]<nums[i]){
            int t=nums[j];
            nums[j]=nums[i];
            nums[i]=t;
        }
    }
}
for(int i=0;i<length;i++){
    cout<<nums[i]<<" ";
}

shell代碼

i=0    #外層循環計數
j=0+$i #內層循環計數
t=0    #用於兩數字交換臨時變量
nums=(1 2 1 3 4 2 5 6) # 用於測試的數組
length=${#nums[*]} # 數組長度

# 外層循環開始
while [ $i -lt $length ]
do
    
    # 內層循環開始
    j=$(($i + 1))
    while [ $j -lt $length ]
    do
        # 從小到大排序
        if [ ${nums[$j]} -lt ${nums[$i]} ]
        then
            t=${nums[$i]}           
            nums[$i]=${nums[$j]}
            nums[$j]=$t
        fi
        
        # j++
        j=$(($j + 1))
    done

    # i++
    i=$(($i + 1))
done

# 輸出結果
i=0
while [ $i -lt $length ]
do
    echo -e "${nums[$i]} \c"
    # i++
    i=$(($i + 1))
done
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章