2012-07-03 33 views
0

我寫了這個函數來定購數組元素,好不好?數組排序C,是否正確?

我還是C編程的noob,所以我更願意問。

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 = + 1','我 rohit89

+0

不,這是不正確的。例如,對於10個元素的數組,您將對(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

請注意,內部循環應該比較給定索引處的值和其鄰居。 即 array [j]> array [j + 1]。

-1

使用的qsort() - http://www.cplusplus.com/reference/clibrary/cstdlib/qsort/

更多信息提供的如果需要的話。

+0

這就像在java問題中使用jQuery一樣有用。 –

+1

這是標準庫中的C函數。所以不是真的像在Java中使用JavaScript框架一樣,這是一種不同的語言。 – SpacedMonkey

+1

是的,但它不能幫助OP的問題。他問如何解決他的算法,而不是如何分類數組。 –