1. 程式人生 > >氣泡排序法函式

氣泡排序法函式

氣泡排序法的函式實現

話不多說上程式碼,拿去直接用。

// 氣泡排序函式
/*
*  @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.沒有對陣列的長度進行防呆,需要真實的傳入長度