氣泡排序法函式
阿新 • • 發佈:2019-02-14
氣泡排序法的函式實現
話不多說上程式碼,拿去直接用。
// 氣泡排序函式
/*
* @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.沒有對陣列的長度進行防呆,需要真實的傳入長度