1. 程式人生 > >排序算法C語言實現——冒泡排序

排序算法C語言實現——冒泡排序

int ram 這一 -i 循環 一點 lag 開始 冒泡

/*冒泡
O(n^2)*/

/*
原理:
比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
針對所有的元素重復以上的步驟,除了最後一個。
持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。
*/
void bubbleSort(int* date, size_t len)
{
size_t i=j=0;
int iTmp=0;
int iFlag=0;

if((NULL == date) || (len <= 0))
{
throw("Invalid Parameter");
}

for(i=0;i<len-1;++i)
{
iFlag=0;
for(j=0;j<len-i-1;++j)
{
if(date[j] > date[j+1])
{
iTmp = date[j+1];
date[j+1] = date[j];
date[j] = iTmp;
iFlag=1;
}
}
if(0==iFlag)
{
break;/*內層循環沒有元素交換,則排序提前完成*/
}
}
}

排序算法C語言實現——冒泡排序