冒泡排序

冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序。

它是一种较简单的排序算法。它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾! 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止!

int main(void)
{
    int arr[7]={10,20,36,24,55,34,23};
    int n=7;
    bubble_sort(arr,n);
    return 0;
}

void bubble_sort(int arr[],int n){
    int i=0;
    int j=0;
    int temp;
    int flag;//标记
    // 将arr[0...i]中最大的数据放在末尾
    for(i=n-1;i>=0;i--){
        flag=0;
        for(j=0;jarr[j+1]){
                temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
                flag=1;// 若发生交换,则设标记为1
            }
        }
        if(flag==0){
            break;    //如果没有变化,说明已经有序
        }
    }
    for(i=0;i

冒泡排序的时间复杂度是O(N2)。

你可能感兴趣的:(冒泡排序)