2014-10-25 3 views
1

Кто-нибудь знает какую-либо формулу, чтобы найти общее количество проходов/количество подкачки, используя сортировку пузырьков .Bubblesort сортировать по возрастанию

8,22,7,9,31,19,5,13 

Мне нужно сортировать в порядке возрастания. Я сделал это вручную, но хочу знать Формулу в решении MCQ. Вместо того, чтобы вручную, как я могу использовать формулу для ее сортировки? Ярлык (если существует)?

+0

Там нет формулы, как математику для того же самого. На каком языке вы используете? Вместо этого вы можете использовать библиотеки для их сортировки. – SMA

+0

Если мне дано это в MCQ's ... –

+0

http://stackoverflow.com/a/11422184/4161269 вы можете прочитать его. –

ответ

0

Вы можете легко подсчитать количество свопов, используя тот факт, что оно равно количеству инверсий в массиве (это верно, потому что каждая своп в сортировке пузырьков уменьшает количество инверсий точно на единицу).

+0

Я буду использовать карандаш и бумагу, а не IDE –

+0

@DavProgMania Подсчитать количество инверсий вручную намного проще, чем шаг за шагом создавать пузырьки. – kraskevich

+0

Если вы не возражаете, пожалуйста, демонстрационный пример demo.me с использованием инверсии '8,22,7,9,31,19,5,13' –

1

Если данные 8,22,7,9,31,19,5,13, ​​это организовать в массиве

data[]={8,22,7,9,31,19,5,13} 

И если «общий» общее число данных в массиве. В этом случае

total=8 

Ниже приведен алгоритм (формула) для пузырьковой сортировки

for(i=0;i<total;i++){ 
    for(j=i;j<total-1;j++) 
     if(data[j]<data[i]){ 
     temp=data[j]; 
     data[j]=data[i]; 
     data[i]=temp; 
     } 
    } 
Смежные вопросы