2012-07-03 2 views
0

Я написал эту функцию для заказа элементов массива, хорошо ли это?Array sort C, это правильно?

Я все еще программист на программировании на языке C, поэтому я предпочитаю спросить.

bSortArray(int array[], int arrayL) 
{ 
    int i,j,temp; 
    for(i=0;i<arrayL;i++) 
    { 
     for(j=0;j<arrayL-1;j++) 
     { 
      if(array[i]<array[j]) 
      { 
       temp=array[i]; 
       array[i]=array[j]; 
       array[j]=temp; 
      } 
     } 
    } 
} 
+0

Измените 'j = 0' на' j = i + 1', 'i rohit89

+0

Нет, это неверно. Скажем, для массива из 10 элементов вы выполните сравнение и swap для пары (i = 2, j = 5), а затем вы будете выполнять ту же самую вещь для пары (i = 5, j = 2). Зачем? В действиях, которые вы выполняете, нет никакой «упорядочивающей» семантики. – AnT

+2

Это домашняя задача? –

ответ

1

Вы можете иметь сортировку пузырьков, которые приносят небольшие значения в начало массива, , или вы можете иметь сортировку пузырьков, которые приносят большие значения в конец массива. Анимация на странице Википедии показывает второй случай. См: http://en.wikipedia.org/wiki/Bubble_sort

Вот реализация, которая завершит цикл рано, если он делает проход по г без замены ничего. http://www.c.happycodings.com/Sorting_Searching/code4.html

Обратите внимание, что внутренний цикл должен сравнивать значение по заданному индексу с его «соседом». i.e. массив [j]> массив [j + 1].

-1

Использование QSort() - http://www.cplusplus.com/reference/clibrary/cstdlib/qsort/

Более подробная информация предоставляется в случае необходимости.

+0

Это примерно так же полезно, как «использовать jQuery» по java-вопросу. –

+1

Это функция C в стандартной библиотеке. Так что не очень хочется сказать, что использование JavaScript-фреймворка в Java - это другой язык. – SpacedMonkey

+1

Да, это так, но это не помогает вопросу ОП. Он спросил, как исправить его алгоритм, а не как сортировать массивы. –