冒泡排序法函数

来源:互联网 发布:大连交通大学网络 编辑:程序博客网 时间:2024/05/21 15:42

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

冒泡排序法的函数实现

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

// 冒泡排序函数/**  @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; i<length-1; i++)     // 10个数,10 - 1轮冒泡,每一轮都将当前最大的数推到最后    {        for(int j=0; j<length-i; 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 <stdio.h>#include <time.h>//使用当前时钟做种子#include <stdlib.h>// 冒泡排序函数/**  @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.没有对数组的长度进行防呆,需要真实的传入长度
原创粉丝点击