0

配列要素を並べ替えるためにこの関数を書きましたが、それでよろしいですか?

私はまだ 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;
            }
        }
    }
}
4

2 に答える 2

1

バブル ソートで小さな値を配列の先頭に移動させるか、バブル ソートで大きな値を配列の最後に移動させることができます。ウィキペディアのページのアニメーションは、2 番目のケースを示しています。参照: http://en.wikipedia.org/wiki/Bubble_sort

これは、何もスワップせずに i を通過する場合、ループを早期に終了する実装です。 http://www.c.happycodings.com/Sorting_Searching/code4.html

内側のループは、指定されたインデックスの値をその隣の値と比較する必要があることに注意してください。つまり、配列 [j] > 配列 [j+1] です。

于 2012-07-03T15:15:25.887 に答える
-1

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

必要に応じて、より多くの情報を提供します。

于 2012-07-03T14:59:24.573 に答える