文章目錄
- 冒泡排序法的函數實現
- 使用教程
冒泡排序法的函數實現
話不多說上代碼,拿去直接用。
// 冒泡排序函數
/*
* @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為1或0,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.沒有對數組的長度進行防呆,需要真實的傳入長度