冒泡排序法是一种最简单,也是最容易实现的一种排序算法。它属于交换排序法中的一种。所谓交换排序法就是指,当出现相临两个值无序时,通过交换两个值的位置来实现排序。
冒泡排序法的思想是,每进行一趟排序时,都使“最轻的气泡”冒到最顶层。所以它最多需要n-1次排序。其中值得说明的是,若在某一趟排序中未发现气泡位置的交换,则说明待排序的无序区中所有气泡均满足轻者在上,重者在下的原则,因此,冒泡排序过程可在此趟排序后终止。
算法:
void bibblesort(int arr[], int N)
{
int i, j;
int exch_flag = 0;
int lep = N-1; //last exchange position
for(i=1; i {
exch_flag = 0;
for(j=0; j if(a[j] > a[j+1])
{
a[j] = a[j] ^ a[j+1];
a[j+1] = a[j] ^ a[j+1];
a[j] = a[j+1] ^ a[j];
lep = j;
exch_flag = 1;
}
if(exch_flag == 0)
return;
}
}
阅读(1100) | 评论(0) | 转发(0) |