冒泡排序

冒泡排序: 將一個整形數組中的元素按照從小到大的順序排列

具體方法:數組元素先進行一次依次循環比較,找出最大的元素,放在數組最右邊, 嵌套循環時要注意循環次數的控制, 進行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;  
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章