冒泡排序: 将一个整形数组中的元素按照从小到大的顺序排列

具体方法:数组元素先进行一次依次循环比较,找出最大的元素,放在数组最右边, 嵌套循环时要注意循环次数的控制, 进行n-1趟排序后,就ok。

下面是代码实现:

#include<stdio.h>
#include<stdlib.h>
int * bubble_sort(int arr[],int sz) 
 
{  
        int i = 0;
	int j = 0;
        int flag = 1;//这里声明一个标志,为了下面内层循环中减少数组元素比较的次数
                     //假设标志为1时,数组元素为有序的
    int tmp = 0;
    for(i = 0;i<sz-1;i++) 
    {  
        for(j = 0;j<sz-1-i;j++)
        {  
            if(arr[j]>arr[j+1]) 
            {  
                tmp = arr[j];  
                arr[j] = arr[j+1];  
                arr[j+1] = tmp;  
                flag = 0;  
            }  
        }  
        if(flag==1) 
               return arr;  
    }  
    return arr;  
}  

int main()  
{  
    int arr[] = {5,0,1,2,3,4,9,7,6,8};  
    int i = 0;  
    int *ret = bubble_sort(arr,sizeof(arr)/sizeof(arr[0]));  
      for(i = 0;i<10;i++)  
    {  
        printf("%d ",arr[i]);  
    }  
      system("pause");  
    return 0;  
}