2013-02-08 1 views
1

버블 정렬을 수행하려고하는데 유닉스 쉘 스크립트입니다. 코드가 작동하지 않는 이유는 무엇입니까?버블 정렬 리눅스/유닉스 쉘 스크립팅

a=(10 8 20 25 12) 

for ((i=0;i<5;i++)) 
do 
for((j=0;j<5;j++)) 
do 
if ((${a[j]} > ${a[$((j+1))]})) 
then 
    v=${a[$j]} 
    a[$j]=${a[$((j+1))]} 
    a[$((j+1))]=$v 
    fi 
done 
done 
    echo ${a[*]} 
    echo "end..." 
+2

'sort' 명령이 있다는 것을 알고 계십니까? –

+0

@WaleedKhan sort는 Mergesort를 사용합니다. (O (nlgn) Kent

+0

* "내가 아는 한, 거품이 가장 느립니다"* 행운은 어떨까요? –

답변

3

나는 이것이 숙제라고 생각합니다. 그러므로 내가 코드를 제공하지 않습니다, 당신의 코드에서 오류를 지적 :

for((j=0;j<5;j++)) 다음 j=4, j+1

이 프로그램 정렬 것을 해결 존재하지 않는 경우 때문에 문제가 될 것입니다 여기에, a[j+1] 읽기 .

+0

감사합니다 .. .. 루프가 있어야합니다 ((j = 0; j <5-1; j ++)) 많이 :) 감사합니다. 사실 내 프로그램이 바로 정렬을하고 있었지만 오류가있었습니다. 이제 수정되었습니다 : D – hitman047