2013-02-08 2 views
1

Я пытаюсь выполнить сортировку пузыря - это скрипт оболочки Unix. Почему мой код не работает?Bubble sort в сценариях оболочки Linux/Unix

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

* «Насколько я знаю, пузырь самый медленный» * А как насчет lucksort? –

ответ

3

Я думаю, это домашнее задание. Поэтому я не даю коды, просто указать на ошибки в своих кодах:

for((j=0;j<5;j++)) затем прочитать a[j+1], здесь будет проблема, потому что когда j=4, j+1 не существует

исправить это, ваша программа будет сортировать ,

+0

thank u .. цикл должен быть для ((j = 0; j <5-1; j ++)) спасибо большое .. :) на самом деле моя программа делала правильную сортировку, но произошла ошибка. теперь он исправлен: D – hitman047