冒泡排序法函数

  • 冒泡排序法的函数实现
  • 使用教程

冒泡排序法的函数实现

话不多说上代码,拿去直接用。

// 冒泡排序函数
/*
*  @brief  sort
*  @param  array为数组名称,length为数组的长度,order为1或0,1代表从小到大排序
*          0代表从大到小排序
*  @return 0代表排序失败,1代表排序成功
*/
int sort(int *array,int length,int order)
{
    int temp;

    for(int i=0; i1; i++)     // 10个数,10 - 1轮冒泡,每一轮都将当前最大的数推到最后
    {
        for(int j=0; j// 9 - i,意思是每当经过一轮冒泡后,就减少一次比较
        {
            if( 1 == order )
            {
                if(array[j]>array[j+1])
                {
                    temp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                }
            }
            else if( 0 == order )
            {
                if(array[j]>array[j+1])
                {
                    temp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                }
            }
            else
            {
                return 0;
            }
        }
    }
    return 1;
}

使用教程

#include 
#include //使用当前时钟做种子
#include 

// 冒泡排序函数
/*
*  @brief  sort
*  @param  array为数组名称,length为数组的长度,order为10,1代表从小到大排序
*          0代表从大到小排序
*  @return 0代表排序失败,1代表排序成功
*/
int sort(int *array,int length,int order);
int main()
{
    srand( (unsigned)time( NULL ) );     //初始化随机数
    int dataCount=10;
    int numArr[dataCount];

    printf("%s\n","The original array value list :");
    for( int i = 0; i < dataCount;i++ )  //打印出10个随机数
    {
        numArr[i]=rand()%100+1;
        printf("  %d\n",numArr[i]);
    }

    sort(numArr,11,1); //调用排序函数

    // 打印排序结果
    printf("\n%s\n","The now array value list :");
    for (int i = 0; i < 10; i++)
          printf("  %d\n", numArr[i]);

    printf("\nThe max value : %d\n",numArr[9]);

    return 0;
}

直接复制使用即可。

注意

1.只能对数组进行排序
2.没有对数组的长度进行防呆,需要真实的传入长度

你可能感兴趣的:(C语言基础)